研究人员研发出一种创新技术,通过合成第二只眼睛的视图而非直接渲染,来提升虚拟现实(VR)的帧速率。
相关研究论文《你只需渲染一次:提高移动虚拟现实的能量和计算效率》,由来自多所高校的研究人员共同撰写,其中包括加州大学圣地亚哥分校的两名学者、科罗拉多大学丹佛分校的两名专家、内布拉斯加大学林肯分校的一位研究者以及广东工业大学的一名科研人员。
立体渲染技术要求为每只眼睛分别渲染视图,这是VR游戏比平面屏幕游戏运行难度更高的主要原因之一,进而导致VR游戏的图形保真度相对较低,大大降低了VR对众多主流游戏玩家的吸引力。
尽管像Quests这类独立VR头戴设备能够借助单通道立体技术,优化立体渲染过程中的 CPU绘制调用,但GPU仍需对双眼视图进行渲染,这其中就包含了成本高昂的每像素着色操作以及内存开销。
而YORO则是一种极具吸引力的新方法。它首先按照常规方式渲染一只眼睛的视图,对于另一只眼睛的视图,不再进行渲染,而是通过两个高效阶段进行合成,即重投影和修补。
需要明确的是,YORO 并非人工智能系统,它不涉及神经网络,因此不会出现任何AI幻觉问题。
在重投影阶段,系统利用计算着色器将已渲染眼睛的每个像素迁移至另一只眼睛的屏幕空间,随后标记出那些被遮挡的像素,也就是已渲染眼睛无法看到的像素。
这正是修补阶段发挥作用的地方。它借助一个轻量级图像着色器,对重投影步骤中标记出的遮挡像素应用具有深度感知的绘画滤镜,将背景像素模糊后填充到这些位置。
研究人员称,YORO能够将GPU的渲染开销降低50%以上,并且在大多数情况下,合成出的眼睛视图实现了“视觉上无损” 的效果。
在Quest 2设备上运行Unity的VR Beginner: The Escape Room示例进行的实际测试中,应用YORO技术后,帧速率提升了32%,从62 FPS提高到了82 FPS。
不过,这种 “视觉无损” 合成存在一个例外情况,即处于极近场时,也就是虚拟物体离眼睛非常近的情况下。物体与眼睛的距离越近,立体视差自然就会越大,此时 YORO 方法的效果会在一定程度上打折扣。
针对这种情况,研究人员建议直接回归常规的立体渲染方式。甚至可以只针对特定物体进行渲染,例如那些距离眼睛极近的物体,而无需对整个场景进行渲染。
YORO还有一个较为重要的限制,就是它不支持透明几何体。但研究人员指出,在移动 GPU 上,透明效果本身就需要进行第二次渲染,因此实际应用中很少使用,他们建议将 YORO 插入到透明渲染过程之前。
Unity实现的YORO源代码已在GitHub上发布,且遵循GNU通用公共许可证(GPL)。从理论上讲,VR开发者现在已经可以将这一功能应用到自己的游戏中。但像Meta、字节跳动和苹果这样的平台持有者,是否会在SDK或系统层面采用类似YORO的技术呢?