实时渲染技术和DLSS 2.0技术

本文是在计算机图形学期末考察的背景下,通过一周的调查并按个人理解整理得出的。虽说文章也是总结的精华,但个人以为还颇有粗糙之处(如有错误欢迎指正)。在此,笔者把参考资源放于文章之前——相比于本文,参考资料在学术上更准确,内容深刻,表达得体;另一方面也是希望大家优先从参考资料下手,从中得出自己的思考,再来笑看这篇多方借鉴的总结。

Reference


一、前言

通俗讲,渲染(Render)是处理器将需要计算的画面信息,计算并“绘制”在显示屏幕上的过程。随着显示技术的进步,渲染技术也慢慢地出现了两条主流分支:一种用于视频游戏技术,另一种则是用于影视技术。这两类需求对应的渲染技术分别为:实时渲染离线渲染

实时渲染(Real-time rendering)指的是在计算机上快速生成图像。它是计算机图形学中最具交互性的领域。首先一幅图像显示在屏幕上,然后观察者做出动作与反应,并且其动作反馈会影响接下来的生成内容。由于这种反馈、渲染的循环速度足够快,观察者就不会只看到独立的图像,而是会沉浸在这种动态过程中。

由于追求高分辨率和高帧率的真实性体验,RTR技术难度呈指数型上升。显示设备的更新换代以及物理着色、光线追踪、精确物理引擎、更高质量的纹理模型的实现使最新一代 GPU 也难以在不影响帧率的情况下以原始分辨率渲染图像。此时,低分辨率的性能开销实现高分辨率的画面成为大势所趋。

图1 光线追踪

借助于深度学习超采样(DLSS),NVIDIA推出DLSS 2.0。其实现了通过渲染更少的像素,使用 AI 构建清晰、分辨率更高的图像。 DLSS2.0由GeForce RTX GPU上的专用 AI 处理器Tensor Cores 提供支持,是一种经过改进的全新深度学习神经网络,可在生成精美、清晰的游戏图像的同时提高帧速。它为游戏玩家提供了最大化光线追踪设置和提高输出分辨率的性能空间。

图2 NVIDIA推出DLSS技术

本文旨在介绍实时渲染图像重建技术部分基础,同时着重于讨论新兴的基于深度学习的实时渲染重建DLSS 2.0。文章结构如下:第二部分讨论了实时渲染重建技术基础,包括抗锯齿和超分辨率采样两个方向;第三部分着重讨论DLSS 2.0技术的理论、工作原理和实现效果;第四部分分析DLSS 2.0的优点和缺点,并讨论了DLSR技术面临的挑战和展望。

二、实时渲染图像重建技术基础

(一)抗锯齿技术

Aliasing (锯齿)这个术语最早出现在信号处理这门学科中,指的是当一个连续信号被采样后和其他非一致信号混淆的现象。在3D渲染中,这个术语有着更特殊的意思——它涵盖了所有3D渲染光栅化后产生的画面瑕疵。3D场景渲染在光栅化之前是连续信号,但在进行像素渲染(对每个像素生成相应的色彩值)的时候就不得不对连续信号进行采样以获得能够输出到显示器的结果。反锯齿的目标就在于让最终输出的画面和原生场景尽可能接近,修复渲染瑕疵。

所有的渲染失真都可以归因于采样问题(用有限的像素展示无限的细节),使用哪种反锯齿手段与锯齿成因息息相关。因此,为了探讨不同反锯齿手段的优势和劣势,我们先将3D渲染的瑕疵根据其成因简单归纳为6个类别:几何失真、透明失真、子像素失真、纹理失真、渲染失真、闪烁情形(时间性锯齿)。

图 3 各种类型的失真。分别为:透明失真、几何失真(2D)、子像素失真、几何失真(3D)、纹理失真、渲染失真

现如今的抗锯齿技术可以分为两类:一类是通过提高采样质量来减少渲染时锯齿,另一类则是通过对已渲染好的图片分析和后处理来减少锯齿。

1. 基于采样的抗锯齿技术

首先讨论基于采样的反锯齿技术,其实质则是通过渲染比屏幕分辨率更高的画面而后再降采样至屏幕空间分辨率。样本数量,样本位置、采样模式和样本融合方式都会影响最终的画面质量。

样本数量

显而易见,倘若生成一个像素的采样点趋近于无穷多,那么最终的效果就会无限趋近“完美”的光栅化效果。因此,抗锯齿的效果和样本数量密切相关。当然样本数量也关系到设备性能:通常在游戏中每个像素会使用2个或4个采样点,而在高端显示器中可能会使用到8个及以上的采样点。

图 4 三角形光栅化,每个像素有4个有序样本

样本位置

样本位置的选取对最终画面质量有着至关重要的影响。特别是在游戏渲染中,由于采样点数量少,样本位置就更为重要。由于样本位置呈有序点排列,这种抗锯齿也被称作顺序栅格超级采样(Ordered Grid Super-Sampling,OGSS)。然而,对于接近垂直或接近水平的线而言,使用排列有序的采样网格效果往往不佳。此时,采用旋转栅格超级采样(Rotated Grid Super-Sampling,RGSS)可以获得更好的结果。

图 5 近垂直线场景、完美抗锯齿光栅化、4个有序样本的光栅化、4个稀疏栅格样本的抗锯齿

为了缓解这个问题,我们也可以将采样点稀疏摆放在不同的列。对于抗锯齿来说,理想的摆放应当是稀疏的。换句话说,对于N个采样点,任意两个采样点不会在一个N\times N网格的同一列、行以及对角线上。通过对N皇后问题求解可得到满足这种条件的采样点摆放方式,在此不再赘述。这种稀疏摆放采样点的抗锯齿也被称作稀疏栅格抗锯齿(Sparse Grid Anti-aliasing,SGAA)。

图 6 左图:有序采样点 右图:N皇后采样

采样类型
  1. 超采样抗锯齿(Super-sampling Anti-aliasing,SSAA)
    基于采样的抗锯齿方法对每个采样点都进行了运算。虽然这样的采样方式可以消除各类渲染失真,但也非常耗费资源。举个例子,N倍采样将会给像素渲染、光栅单元、内存带宽以及内存容量施加N倍的计算压力。这种对每个采样点都进行独立计算的采样也被称为超采样抗锯齿。
图 7 2 x SGSSAA

  1. 多重采样抗锯齿(multi-sample anti-aliasing,MSAA)
    在进入21世纪后,多重采样抗锯齿开始作为SSAA的一种优化解被广泛应用。MSAA实质是只对 Z 缓存(Z-Buffer)和模板缓存 (Stencil Buffer)中的数据进行超级采样抗锯齿的处理。可以理解为只对边缘进行抗锯齿处理。当硬件支持Z缓存和模板缓存时(而现今大部分GPU都已经支持这些特性),MSAA带来的内存带宽开销会进一步缩小。相比SSAA对画面中所有数据进行处理,MSAA大大减弱对资源的消耗。但由于MSAA仅针对几何体边缘进行抗锯齿,其他类别的失真(透明失真、纹理失真和渲染失真等)都无法被消除。
图 8 MSAA信息存储和相应的EQAA
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值