毫无疑问,英伟达在 GPU 上面是难逢敌手的。借助强劲的 GPU,它在需要巨大计算量以及图形渲染的任何领域也大放异彩。在人工智能,智能驾驶领域英伟达更是翻云覆雨,更不用当下另一个风口——VR。
所以英伟达这次又把 GTC 从美利坚开到了北京,并且为 VR 单独开辟了一个论坛。由于论坛的主题是「中国制造 2025 以及虚拟现实」,所以在大会上,我们更多听到的是 VR 技术在工业级上的应用。这些技术的运用背后都有英伟达在图形处理上的支持,尤其是专为 VR 开发者准备的开发套件 VRWorks。说了那么多,这套开发工具到底有神奇之处?
ATW 技术之后,还有什么技术能减轻我们的眩晕感?
VR 技术的兴起之所以让 PC 行业为之兴奋,最主要的原因在于 VR 对于计算能力的要求要求比一般的游戏要更高。而这一部分的重任则主要是落在了 GPU 之上,但传统的渲染方式——渲染整个画面以及每一个细节显然不适用于 VR 内容。毕竟在 VR 设备上,GPU 需要在短时间内渲染出左右眼不同的两个画面,并且需要随时根据用户头部的方向调整渲染的内容。
早先为了减轻眩晕感,英伟达在上一代 Maxwell 架构上,曾经公布过一项名为 Asynchronous Time Warp(异步时间扭曲)的技术。比如,在用户沉浸在 VR 时会不自主进行头部的摆动。只有当他停止动作后,眼睛看到的画面与现实世界中停止动作后应该看到的画面相吻合,那么用户才不至于产生不适感,才能更好地沉浸在 VR 世界里。
Asynchronous Time Warp 技术通过提前在屏幕刷新前准备好用户理应看到的画面,来提升画面的流畅性。这一次英伟达则是依托于新的 Pascal 架构,在 VRWorks 套件中推出了另一项更进一步提升体验的技术 Preemption——它的作用在于能够更快,更早地启动 Asynchronous Time Warp 技术,生成更多的中间帧,画面过渡更自然,让最终呈现给用户的画面更贴近现实,增加 VR 带来的沉浸感。
新型渲染技术,进一步为 GPU 减负
如果说 Preemption 是 VRWorks 里提升用户体验的担当,那么接下来几项技术则是 GPU 减负担当。在说明接下来的几项技术之前,我们先要了解显卡在渲染 3D 图形的大概步骤:首先 GPU 通过计算将 3D 图形构建好,然后再通过投影的方式将 3D 图形投射到显示器上,形成 2D 图形。即使玩家配备了多个屏幕,他看到的画面也只是单纯地将一个投影拉长。如果玩家采用的环绕式的屏幕排布方式,那么画面可能会扭曲变形。
这时候英伟达的另一项新技术 Simultaneous Muti-Projection(多重同步投影技术)就可以解决这个问题了——它的解决方案是分别针对不同朝向的物体,采用不同方向的「光源」进行投射,这样渲染物体就不会发生扭曲了。基于这项技术,英伟达拿出了 Single Pass Stereo 以及 Lens Matched Shading 这两项技术。
GPU 运用基于 Simultaneous Muti-Projection 的 Single Pass Stereo 技术,根据左眼与右眼见到图像视角的差别,仅需通过渲染出左眼所见的图像,再稍微扭曲下渲染出左眼的图像,即可得到右眼的图像,无需进行二次渲染。而 Lens Matched Shading 可以视为给 VR 渲染视图添加了一个遮罩——这个遮罩的目的在于调整因为 VR 镜片带来的畸变。这样一来,就不必每次渲染后再做一遍反畸变的调整。
VRWorks 加持音效,让声音也变 3D
说到沉浸感,一般人首先会想到的是无延迟又精细的画面,这一方面也是诸多内容开发者追求的,然而除了画面之外,另一个至关重要的方面就是音效。试想一下,当玩家沉浸在画质精良的虚拟世界中不可自拔之时,突然两耳响起贫瘠的环境音乐,是不是很出戏?
对于音效的处理,大多数开发者的做法是直接改变音源声音的大小,将「音响」直接对准体验者的耳朵。这样的方法简单粗暴,也能让体验者判断音源的方位,但沉浸感不足——原因是,在现实生活中,我们听见的声音不仅仅只有从音源发出的,还有墙壁等物体反射后形成的另一波声音。
英伟达推出的 VRWorks 套件对于这样的情形有一套特定的解决方案——将原本用在图形渲染上的「物理光效」运用到了音效之上,构建出一套适用于声音反射的函数方程,以模拟声波碰撞到不同材质物体之上的反射音。
因为光线与声音同样都是属于波的一种,GPU 也能处理这一类型的计算。然而,由于不同材质物体对于声波的反射与吸收的比例是不同的,并且还涉及到不同反射波的合成问题,所以开发者在使用这项技术的时候,需要与英伟达合作一起,调整相关参数。
VRWorks 套件固然对 GPU 性能提升与优化有着莫大的帮助,但如果这套组件仅仅是英伟达一家独自推动的技术,那么对于开发者也没有什么实际的用处。不过,无论是 Unity 还是 Unreal 哪一款开发引擎,都已经宣布支持英伟达的 VRWorks。这一次 VR 开发者似乎真的拿到了一套趁手的开发利器。
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/71953.html