基于屏幕空间的环境遮挡技术外文翻译资料

 2022-11-04 17:01:36

可扩展的环境遮挡

Morgan McGuire1,2, Michael Mara1,2, and David Luebke1

1NVIDIA; 2Williams College

Alchemy AO[MOBH11]: r = 0.10m, 1280times;720 in 2.3ms New SAO Result: r = 1.5m @ 1920times;1080 in 2.3ms

图1:给定一个固定的时间预算,相比使用相同数学估计的2011 AlchemyAO算法,我们的新算法大大提高了环境遮挡的分辨率和质量。在该示例中得到的增加的阴影保真度允许观察者能更好地辨别诸如拱门和窗帘的区域中的形状。

摘要

本文针对最近的基于屏幕空间的环境遮挡算法在架构感知性能和集成方面提出了一系列的改进。这些改进共同在 2560times;1600上创造了7倍性能的提高,将算法推广到前向渲染和延迟渲染,并消除了先前算法的半径和场景依赖性以提供固定执行时间的硬实时保证。优化基于三个策略:预处理深度缓冲区以最大化存储器层次效率;通过从深度缓冲区仔细重构高精度的位置和法线来减少总带宽; 并利用低级线程内和线程间技术用于并行,浮点架构。

1. 引言

Vicarious Visions游戏工作室 [MOBH11]的Alchemy Ambient Obscurance算法产生高质量的屏幕空间环境遮蔽(AO)。他们将其设计目标描述为:首先,从当时的GPU缩小到低端Xbox 360,其次,与1280times;720分辨率的延迟渲染器集成。Alchemy AO算法,像以前的屏幕空间AO技术一样,在游戏行业中获得了显着的兴趣。

本文介绍了AlchemyAO的一个新的变种现代和未来的图形架构。我们维护AlchemyAO的核心数学,但使用一种新的可扩展环境遮挡(SAO)算法来评估它,该算法以两种方式改进AlchemyAO。首先,新的SAO算法只需要输入一个标准的深度缓冲区(即,它消除了Alchemy AO的位置和法线的缓冲区),因此它集成了前向渲染和延迟渲染;其次,Alchemy AO被设计为缩小到有限的硬件在固定的分辨率上,我们的算法假定现代硬件和规模达到高分辨率和世界空间采样半径。这解决了一个许多以前基于屏幕空间的AO方法的已知局限,当采样远离像素时其缓存效率和网络性能下降(如图5所示)。

图1展示了我们的改进对实时应用程序的实际影响。两个图像都显示了由于各种尺寸的遮挡而导致环境照明减弱。左图显示了由原来的算法产生的遮挡结果。它显示了Alchemy AO的理想特征:接地触点的阴影、细节和观察方向的健壮性。然而,在相对适中的720p分辨率下,Alchemy AO在2.3毫秒内只能取一个0.1M半径的样本,限制了极局部的遮挡效果。右图显示,即使在更高的1080p分辨率上,新的SAO算法在相同的执行时间内可以取一个大于1.5m半径的样本,捕获更多的全局遮挡。

随着屏幕分辨率的提高,像素间的差异变得越来越不明显,带宽需求越来越多地限制了性能。保持固定的遮挡半径和降低滤波器的质量在相同的执行时间提供了一个可比较的视觉结果。

我们还讨论了最大化深度缓存的精度的方法。这种仔细处理Z精度使我们能够丢弃Alchemy AO的位置和法线G缓冲区,并使用一个标准的深度缓冲区代替,进而导致我们使用更少的滤波器抽头跨越z以减少带宽而不牺牲质量的策略。

1.1. 相关工作

Shanmugam和Arikan [SA07]和Mittring [Mit07]的并发学术和行业工作介绍了物理激励的屏幕空间环境遮挡用于实时渲染。 随后的论文和演示文稿[Kaj09,Kap10,FM08,BS09,LS10,SKUT * 10,MOBH11]提高了性能和质量。

数学上,我们的技术结合了AlchemyAO [MOBH11]估计器,旋转样本模式[Kaj09]和用于从分布在屏幕空间和可见半球上的样本重建平滑AO的双边滤波器[Kaj09,Kap10]。 我们还继承AlchemyAO估计器的深度缓冲区作为一个薄壳(而不是无限厚的体积)的视图健壮性的处理,这是由Loos和Sloan [LS10]首先开发的。

AlchemyAO [MOBH11]使用了三个通道:一个用于估计具有来自每个像素的s个采样的高方差的AO,以及两个重视深度边缘的双向重建。其具有法线的相机空间点的AO估计量为:

(1)

其中为美学选择常数,和,是避免除以零的小偏移。 估计器依赖于分布在球C上的点{,...,},每个点产生一个位移。我们在新的算法结构中使用他们未修改的估计器,是普遍适用的,具有更好的绝对和渐近性能。

Multiresolution AOMAO)[HL12]在不同的输出尺度上计算AO,然后在合成之前用联合双边滤波进行上采样。我们还利用这种方法来改善高速缓存一致性,但将其应用于z输入而不是AO输出。 为了理解这差异,考虑投射到远处的接收器对象上的遮挡。MAO聚集到大接收器上。薄特征和高频几何可以产生闪烁,因为它们是欠采样的。我们的SAO从大型脚轮收集远距离遮挡。这意味着薄物体投射的阴影快速消失(这是人们期望在区域照明下),但是它们在所有尺度上接收阴影。 因为我们总是在每个像素上采样每个对象,没有欠采样,我们的方法在时间上是健壮的。

2. 算法

我们的算法采用标准深度缓冲器作为输入,并在全屏幕上进行一系列遍历,导致每个像素的环境可见度值为0le;Ale;1。应用程序的前向或延迟照明通过,然后通过A调制环境的区域照明。本文的补充材料包括所有着色器的GLSL实现。输入深度缓冲区大于屏幕,使得稍微在帧外的保护带中的对象可能产生模糊。以下部分描述了每个阶段的目的和优化。

2.1. 高精度z 预通道

输入深度缓冲器通常源自仅深度预通道,现代GPU被高度优化。大多数渲染器执行这样的通道以避免最后遮蔽的后面的阴影片元。

深度缓冲器的精度是关键,因为我们将从它的算法中导出所有其他值。 研究和行业已经仔细研究深度缓冲器格式以最大化深度辨别精度(例如,[LJ99,AS06]),但是较少注意最大化摄像机空间点和法线从深度值的重建精度。后一个问题涉及整个流水线:在主机上创建模型视图投影矩阵,顶点变换,硬件属性插值,以及在深度缓冲器中存储。 该流水线中的每个算术运算引入误差,因此必须最小化操作并最大化它们执行的精度。

我们观察到以下提高从现代GPU的深度缓冲器计算的z值的准确度的方法:

  1. 在投射到GPU单精度之前,在主机上以双精度计算模型视图投影矩阵。这包括三个矩

阵乘积(投影,相机和对象),除法和三角运算。

  1. 在投影矩阵[Smi83]中选择。 这减少了矩阵产品[UD12]所需的浮点ALU操作。

的数量。

  1. 当使用列主矩阵(OpenGL中的默认值)时,乘以顶点着色器中左侧的向量。

这节省了大约一半的精度。

注意,存储在G缓冲器中的相机空间位置和法线(例如AlchemyAO的那些)也包含误差。光栅化器将三角形内的那些内插为C / z,n / z,然后在每个像素处除以z,其中z本身被内插为具有有限固定点精度的1 / z。

2.2. 分层的z 通道

该通道将硬件深度缓冲器值0le;dle;1转换为每个像素处的相机空间值zlt;0

(2)

其中和是近平面和远平面的位置,并且当时,常数数组,否则为。 然后,通道为z纹理构建MIP层次结构。

每个z值稍后将被读取多次。MIP0级在这些样本上摊分来自等式2的除法运算。剩余的MIP级别确保在以下通道中获取的空间分布的采样被高速缓存效率读取。因为每个等级的一个小区域将保留在缓存,很少会去DRAM读取,导致高带宽和低延迟。这解决了原来的 AlchemyAO也已在其他屏幕空间AO方法被观察的可扩展性限制。

2.3. 分布式AO采样通道

该通道将s个采样分布在关于相机空间点C的半球上,并且在整数像素位置处找到法线。 我们从恢复C和点

(3)

(4)

对于wtimes;h屏幕和投影矩阵P(方程式3)在像素处反转投影矩阵以找出其相机空间位置C(方程式4)然后从其屏幕空间梯度推断包含C的表面的相机空间面法线。

球的世界空间半径r对应于屏幕空间半径

, (5)

其中z = -1m处的像素大小为1m的对象[MOBH11]。

我们将直接样本放置在螺旋图案中,在空间上改变每个像素周围的方向(图2)。 在像素处获取样本,其中

Let

; (6)

(7)

常数是由螺旋形成的圆的圈数,选择以确保相等的角度分布(对于 ,使用)。 角偏移是像素处的随机旋转角。 我们使用AlchemyAO的XOR哈希,

(8)

因为样本的MIPmi级取决于而不是屏幕空间导数,所以我们显式地计算:

(9)

(10)

图2:新算法通过改进重建的质量和更好地分布样本来实现具有较少直接样本的相似质量。 它通过在不同的层级z级别采样来进一步提高性能。在这个图中,样本半径比模糊滤波器内核大得多。 顶行:点在一个像素处直接采样。底行:双向重建后所有点影响一个像素。 左列:具有12·(13times;13)= 2028抽头的AAO。右列:具有9·(2times;2)·(7times;7)= 1764个抽头的新算法由分层级别进行颜色编码。

常数是我们切换MIP电平时的屏幕空间半径增量; 最优值取决于分辨率,GPU内核数量和缓存大小。在我们的实验中,所有给出了等效结果。较低值导致在相邻像素处的多个抽头,以在较低MIP水平映射到相同纹素 ,其放大了样本方差并表现为时间闪烁。 更高的值降低性能,因为工作区域不再在缓存中。 实现是有效的:

int m = clamp(findMSB(int(h)) - ,0,MAX_MIP);

float z = texelFetch(zBuffer,ivec2(h*u xy)gt;gt;m,m).r;

我们应用方程式3从重建每个,然后用方程式1估计其对于遮挡的贡献。

这个通道的结论是应用一个小的2times;2双边重建滤波器,平均A值以减少方差,其中没有显著的深度不连续。它利用了GPU通过使用屏幕空间派生指令来避免线程间通信的同步化而平行处理2times;2四边形内的像素的事实。参见用于实现细节的补充材料。

所述的采样通道具有低的固定运行时间的优点。可以通过掩蔽例如天空盒的远距离像素,以可变运行时间为代价进一步提高性能。 这很容易通过调用AO通道作为在适当深度放置的全屏四边形上的着色器来

剩余内容已隐藏,支付完成后下载完整资料


英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[140312],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。