Oculus将其最新的渲染技术称为“Stereo Shading Reprojection”,并表示对于像素着色较重的场景,这种方法可以节省高达20%的GPU性能。该公司表示,这种新的VR渲染技术可以轻松添加到基于Unity的项目中,并且“应该不难与Unreal和其他引擎集成”。
VR行业有着使VR渲染更高效的强烈兴趣。对于每一点增加的效率,驱动VR头戴设备所需硬件的要求(目前相当高)就会变得更低、更便宜,从而使更多人能够使用VR。
在去年引入“异步空间扭曲”(Asynchronous Spacewarp)之后,这是另一种渲染技术,使Oculus能够制定较低的“Oculus最低规格”。该公司现在引入了Stereo Shading Reprojection,这种技术可以将特定场景的GPU负载减少20%。
SSR的基本思想是利用每只眼睛视野的相似之处,消除冗余的渲染工作。
由于我们的眼睛间隔很小,每只眼睛从稍微不同的角度看世界。虽然每个视角不同,但是有很多视觉上的相似性。SSR旨在利用这种相似性,避免为已经计算过一个眼睛的场景部分做冗余的渲染工作,并从中推断出在类似视角下场景应该是什么样子的。
照片右侧的绿色区域显示了在SSR过程中引入的伪影,在后续步骤中进行了修正。| 图片来自 Oculus
Oculus的工程师张健和Simon Green在Oculus开发者博客上写道,SSR使用“深度缓冲区的信息将第一个眼睛的渲染结果重投影到第二个眼睛的帧缓冲区中”。这是一个相对简单的想法,但正如他们所指出的那样,为了在VR中能够良好运行,解决方案需要实现以下目标:
– 仍然具有立体视觉正确性,即深度感应与正常渲染相同;
– 能够识别第一个眼睛看不见但第二个眼睛由于略有不同的视角而可见的像素;
– 对于在重投影下不工作良好的镜面表面,有备用解决方案;
– 没有明显的视觉伪影。
为了使其实用,还应满足以下要求:
– 容易集成到项目中;
– 能够与传统渲染引擎很好地匹配,不会干扰其他渲染,如透明度和后处理效果;
– 能够动态地开启和关闭,以便在不需要时不使用它。
他们分享了Stereo Shading Reprojection渲染的基本步骤:
– 渲染左眼:在透明度通行之前保存深度和颜色缓冲区。
– 渲染右眼:保存右眼深度(只在右眼深度通行之后)。
– 重投影通行:使用深度值,将左眼颜色重投影到右眼位置,并生成像素裁剪蒙版。
– 继续进行右眼不透明和加法照明通行,在那些没有被像素裁剪蒙版覆盖的区域中填充像素。
– 重置像素裁剪蒙版,并完成后续的右眼通行。
左图显示了一个边缘幽灵伪影,采用了保守重投影滤波器来修复这个问题,如右图所示。| 图片来自 Oculus
Oculus称,在启用SSR的情况下,他们使用Nvidia GTX 970 GPU进行的测试显示渲染时间节省了约20%,而且这种技术对于像素着色较重的场景特别有用(例如具有动态光源的场景)。
与所有渲染性能提升一样,额外的开销可以留出空余来使场景更易处理。为了在性能较低的硬件上渲染,也可以利用它在相同的目标硬件上添加更复杂的图形和游戏性。
Oculus表示他们计划很快发布演示立体渲染投射的Unity示例代码。
0