研发实战:为VR游戏添加 LiquidVR MultiView Rendering
AMD的MultiView Rendering功能可以减少VR应用程序中对象绘制调用的次数,将对象广播至左眼和右眼,从而降低CPU负载,减少丢帧数和渲染延迟。在单一GPU上支持MultiView Rendering需要使用AMD GPU Services (AGS) Library,并调用agsDriverExtensionsDX11_SetViewBroadcastMasks()函数来将两个视口启用MultiView Rendering。使用MultiView模式时,渲染目标的宽度是原始尺寸的两倍,但从外部代码查询纹理尺寸时仍然是原始尺寸,这样可以减少代码量的调整。在修复了渲染错误后,启用MultiView Rendering可以减少CPU负载并提高性能,但性能提升不到两倍,因为VR渲染器已经进行了优化。最终,将MultiView Rendering支持添加到LiquidVR Affinity Multi-GPU引擎中并不难,因为提前制定了计划,并已将所有着色器设置为单通道渲染。添加MultiView支持的障碍主要是同时处理单通道和MultiView渲染错误。