SSR:Oculus最新渲染技术可节省20%GPU性能
文章相关引用及参考:roadtovr
这种渲染方式可以节省20%以上的GPU性能。
(映维网 2017年08月07日)Oculus正在把他们最新的渲染技术称之为“Stereo Shading Reprojection(立体着色二次投影)”。Oculus表示,对于着重于像素着色的场景,这种渲染方式可以节省20%以上的GPU性能。另外,最新的VR渲染技术可以轻松地添加到基于Unity的项目中,而且“集成至Unreal和其他引擎应该不难”。
虚拟现实行业对提高VR渲染的效率十分感兴趣。效率每提高一点,驱动VR头显所需的硬件条件就能进一步更低,而且更加廉价(目前相当高),从而可以向更多的人普及VR。
去年推出的异步空间扭曲(Asynchronous Spacewarp)渲染技术使得Oculus能够建立更低“Oculus最低规格”。现在,Oculus再次推出了全新的渲染技术Stereo Shading Reprojection(立体着色二次投影) ,使得特定场景的GPU负荷减少20%。
Stereo Shading Reprojection(立体着色二次投影)的基本原理是利用每个眼睛视图角度的相似之处,以消除冗余的渲染工作。
因为我们的眼睛彼此间隔一小段距离,每只眼睛从一个稍微不同的角度看待世界。虽然每个视图有所不同,但两者之间的视觉视觉相似性很大。Stereo Shading Reprojection(立体着色二次投影)正是利用这种相似性来避免冗余渲染工作,并从类似的角度推断场景的影像。
右侧照片的绿色边缘区域是在Stereo Shading Reprojection(立体着色二次投影)带来的伪影,而这将后面的步骤中得到修复。
Oculus工程师Jian Zhang和Simon Green在Oculus开发者博客上写道:SSR利用“深度缓冲区的信息把第一只眼睛的渲染结果重新投射到第二只眼睛的帧缓冲区中。”这个概念听上去相当简单,但两人指出,要支持VR,解决方案需要满足以下条件:
- 在立体上仍然能保持准确,即深度信息与正常渲染相同
- 由于角度不同,其需要能识别第一只眼睛中不可见,但在第二只眼睛中可见的像素
- 为二次投影下无法正常工作的高光表面提供备用解决方案
- 没有明显的视觉伪影
为了进一步优化效果,其需要进一步满足:
- 易于整合到你的项目中
- 适合传统的渲染引擎,不妨碍其他渲染,如透明通道或后期效果
- 能够很容易地进行动态打开和关闭
他们分享了Stereo Shading Reprojection(立体着色二次投影)的基本过程:
- 渲染左眼:在透明通道之前保存深度和色彩缓冲区
- 渲染右眼:保存右眼深度
- 二次投影通道:使用深度值,把左眼颜色重新投射到右眼位置,并生成像素剔除遮罩。
- 继续右眼的不透明和附加照明通道,填充未被像素剔除遮罩覆盖的区域中的像素。
- 重置像素剔除遮罩,并完成接下来位于右眼的通道。
左图显示了边缘伪影,而Conservative Reprojection Filter则用于解决这个问题,如右图所示。
Oculus开发者博文详细介绍了二次投影如何这种情况下运行,如何检测和修复伪影,以及该技术的部分限制,包括与单通道立体渲染的不兼容性(一种VR渲染技术,特别适用于CPU受限的场景)。
Oculus表示,他们在英伟达GTX 970 GPU上测试了Stereo Shading Reprojection(立体着色二次投影),结果显示渲染时间节省了大约20%,而且该技术尤为适用于注重于像素着色的场景(如具有动态光源的场景)。
得益于渲染性能的提高,配置相对没那么强大的硬件可以更轻松地渲染场景,或者相同的目标硬件可以运行更复杂的图形和游戏。
Oculus表示,他们计划很快发布演示Stereo Shading Reprojection(立体着色二次投影)的Unity示例代码。