首页 / 产业新闻 / 返回

完整源码!Valve放出基于Unity的The Lab渲染器

  游戏客栈今日报道(2016.7.5)“The Lab Renderer”是 Valve 在制作 The Lab 这个 demo 里所有 Unity 体验(除了修理机器人那个 Source2 的以外)的渲染器,Valve 把它发布出来让 Unity 的开发者能基于这个学习,打造本世代 VR 渲染的最高保真度和最佳性能的体验。

 11.png

  这并非一个替代 Unity 庞大渲染功能的完整渲染解决方案,但它提供了 Valve 所有用来制作 The Lab 这个演示的功能。包含了所有的源代码和着色器的代码,让开发者来修改以便符合自己的需要。

  以下是这个渲染器提供的特性:

  单向前置渲染(Single-Pass Forward Rendering)和多重采样抗锯齿(MSAA)

  对于 VR 来说,单向前置渲染非常必要,因为它可以使用多重采样抗锯齿,目前已知的对 VR 来说最好的抗锯齿方案。延迟渲染器则会受锯齿影响,目前的画面-空间抗锯齿算法水平无法为其优化。

  Unity 默认的前置渲染器是多重的,每次点光点亮到物体时几何体又会被渲染一次。The Lab 的渲染器在一次前置渲染中支持最多18个动态阴影光线。

  自适应质量

  Valve 在 GDC2016 上 Alex Vlachos 的演讲“高级虚拟现实渲染性能”中展示了自适应质量的算法,视频和幻灯片在此:

  http://www.gdcvault.com/play/1023522/Advanced-VR-Rendering

  自适应质量是一种动态改变渲染保真度来确保帧率的技术,不依赖于可能产生抖动和其它问题的重投射类方法。自适应质量的参数针对每个地图进行完整订制。

  自定义着色器

  这个插件需要所有的材料使用 The Lab 的着色器。如果你有 Unity 着色器和 Lab 着色器混合在一起,Unity 会在渲染阴影时多次渲染,导致性能开销。菜单选项在 Valve->ShaderDev 下面,可以让你把自己现存的材料转化成使用 The Lab 的渲染器。当然在使用这些帮助命令前请先备份你的项目。

  我们发布了完整的着色器源代码,所以你可以进行修改来满足产品的需求。

  GPU 刷新

  在 VR 渲染的性能优化方法中,最少为人知的一种方法就是以合适的节奏来刷新渲染 API,保证 GPU 的负载是满的,避免了空闲。这个插件叫做 Unity’s GL.Flush(),在主摄像头的 OnPostRender() 下,在阴影渲染后最多每帧三次。这能确保 GPU 在 DirectX runtime 下的绘制调用能被正确排序。


联系我们