去掉所有渲染与特效,真正虚拟现实是这样的(下篇)
今天我们要来拽一些专业词汇啦!
虽然下面这些概念看起来好像“不明觉厉”的样子,而且也没人真正向普通消费者认真解释过这些东西,不过这些都是在 VR 圈里经常被提起的概念:
低余辉(Low Persistence)
不论是 Oculus Rift DK1 ,还是“XX魔镜”那种放手机进去的 VR 头盔,从屏幕来看,其实是差别不大的,因为 DK1 用的也是手机那种液晶屏。手机屏幕用在 VR 上有一个最大的问题:动态模糊。或者用 Oculus 的说法,这是一块有“余辉”(Persistence)的显示屏。意思是说,显示过的图像还会留在那里。当你快速转动头部,面前的画面就会模糊不清:你还能看到前一帧本该消失的画面,而你头部当前方向又有一帧新的画面,这种不一致就会造成画面拖影。
你可以想办法提高刷新率,比如使用新的 OLED 屏幕,但这还是不够。真正的“低余辉”显示屏不仅要立即呈现出正确播放的那一帧图像,同时立刻关闭该帧后还能显示好下一帧已经准备出来的图像。Oculus 的 DK2 及其他新型号的产品,Sony 的 PSVR,HTC/Valve 的 Vive 等等已能做到完全清除前一帧图像的残留,动态模糊这一问题可以说是已经被解决好了。屏幕的问题是解决了,但你播放的 VR 画面还得达到 75 fps 的帧率,这样才能匹配上屏幕 75 Hz 的刷新率(或是更高,具体数值可取决于屏幕的技术规格)。如果 VR 的画面到不到这一标准,屏幕再好也是白搭。幸运的是,我们还有一个解决方案。
异步时间扭曲(Asynchronous Timewarp)
如果你经常打游戏或者折腾显卡应该知道,在高分辨率下的 75 fps 的帧率是很难维持的。比如你在玩魔兽世界的时候,站在那里看风景,帧率可能会高达一百多,可是围着一群怪打的时候帧率可能只有十几。对于当前主流显卡,即便是维持住 60 fps 的画面都显得极为勉强。想象一下 VR 头盔还要同时渲染左右两个画面的样子(为了有3D效果,左右的画面其实是不同的)。这么说吧,仅仅是运行演示片段所散发的热量,都有可能让你的屋子好好通风才能呆下去。
异步时间扭曲(Asynchronous Timewarp简称ATW)是一种生成中间帧的技术,当游戏不能保持足够帧率的时候,ATW能产生中间帧,在 GPU 渲染能力与屏幕显示需求之间寻找一个平衡。这一“扭曲”是一个实际图像调整的进程。时间扭曲其实是通过扭曲一帧已经渲染完成但还未在屏幕上显示的图像,进而生成一个中间帧用以弥补头部运动所造成的画面延迟。中间帧是一种后处理效果,它改变的是已经被渲染好的图像来匹配用户最新的头部位置。
时间扭曲的局限性在于,它要依赖于显卡所渲染好的那一帧图像,因为中间帧的调整是发生在这一帧的渲染完成之后。刚才说到,这一“扭曲”过程是一个额外的进程,如果此刻计算机正在运行着一个进程的话,显示器所显示的画面可能会更加延迟。
异步时间扭曲致力于通过一个独立于显卡渲染周期的处理进程来持续追踪头部位置,这个进程和渲染进程平行运行(异步)。在每一次垂直同步前,该异步进程根据渲染进程最新完成的那一帧生成一个新的帧。相比于时间扭曲,这样做能够获取得更低的延迟以及更高的准确度。
然而异步时间扭曲也不完美,因为在处理运动中的画面时容易产生“抖动”,或是轻微的图像重影,如下图所示。因为一个新的图像是只是根据原始图像生成的,原始图像上物体还在原来的位置呢!
以上这些就是我们现在最常听到大家谈论的概念,说完了这几个概念,我们来说说 AMD 和 Nvidia 两大显卡巨头对于 VR 图形技术领域的一些解决方案。
尽管在操作系统层面,我们还有待于来自 DirectX 和 OpenGL 的正式 VR 标准,不过 AMD 和 Nvidia 已经在通过他们专有的技术与 SDK 来提升各自显卡的交互性能了。他们具体的目标还是为用于虚拟现实目的的图像渲染来降低延迟,同时提高帧率。
AMD Liquid VR
根据 AMD 首席游戏科学家 Richard Huddy 的说法,Liquid VR 是运行在 Mantle 平台上的一块独立代码。Mantle 是 AMD 显卡驱动上的专有 API,相比标准的 DirectX 接口,它能提供出更为深层和快速的权限来访问 AMD 的显卡架构。
Mantle 和 Liquid VR 所提供的是访问 AMD 异步处理引擎 (asynchronous compute engine, ACE)功能的完全访问权限。GPU 的流处理单元只是用以处理单一命令的指令槽。 在较旧的 GPU 中,这些指令都是循序执行的。尽管 Radeon HD 7970 显卡拥有 2048 个着色器,但即便是在 GPU 全速运转的情况下,它们也极少是全部都能被充分利用起来。而最新的 ACE 架构则可以让你在处理进程中同时插入不同的指令,从而充分利用起这些计算资源。当空闲的流处理单元的指令槽可用时,所需要的命令就可以插入进来执行。这样 GPU 就可以在执行图像渲染工作的同时来处理这些计算任务,而又不必放下宝贵的处理时间。
在多重 GPU 的 CrossFire 配置中,可以由两个或多个显卡之间相互交替来渲染每一帧图像。不过,当图像在 VR 头盔中被分割开来显示的时候,这一协同效果表现得并不是很好。而 Liquid VR 则能够有效地为每块显卡分配好任务——一个GPU负责左眼,一个 GPU 负责右眼。
AMD 这一 API 还可以让显卡直接跟头戴式显示器进行通信,而不是还要通过 Oculus VR 或者 Razer 的 OSVR 平台这类独立的 SDK 来显示图像。尽管 AMD 所展示的是用 Liquid VR 来支持 Oculus VR 的设备,这一技术却并非只为 AMD 的专有 GPU 所开发的,该公司为所有符合条件的解决方案提供支持。
尽管 AMD 在 GDC 的演示中所用的是其最新的300系列 GPU,我倒觉得 AMD 较快的上一代显卡也是可以这样运行虚拟现实内容的,因为其新卡很大程度上只不过是旧卡重新包装而成的。
Nvidia GameWorks VR
与其说是一个正式的 API,Nvidia 的 GameWorks VR 更多地是作为一系列的技术和功能来帮助开发者们更为充分地把他们的 GPU 应用于 VR 目的。例如我们先前所说的异步时间扭曲技术,在 Nvidia 的 GameWorks 环境,异步时间扭曲可以运行在驱动器层面。类似于 AMD 的 Liquid VR 平台,Nvidia 也在引入 VR SLI,这意味着拥有多重显卡的计算机将能更好地同时渲染左右视图,从而输出更具效果地虚拟现实体验。
这里要重点说一下“多分辨率着色技术”。像 Oculus Rift 与 HTC Vive 这样的现代 VR 头盔需要把一种椭圆形的双视图发送到它们的屏幕上。虽然看上去很奇怪,但只要透过 HMD 的透镜去看就是正常的图形了。左右视图中心的像素比较密集,外围像素则因图像扭曲在分布上要远为零散。
可是到目前为止,这种像素扭曲都是在图像完成后才进行的。显卡倾尽其所有性能来渲染出全分辨率的图像,然后再交由一个后处理阶段来生成扭曲后的图像。这种扭曲后的图像对于屏幕而言只需要使用更少的像素也能呈现一样的效果,这样的渲染过程基本就是在浪费资源。
Nvidia 的解决办法是把整个图像分割成3x3的视区网格。在这里,我们把视区这个概念简单理解成是屏幕上被分割出来的空间。在中央视区仍保留完整分辨率的情况下,外围视区则用类似于传统后处理阶段的扭曲方式进行渲染。当这一切完成后,同样用户感知效果的图像相比原来的像素数量可减少25%到50%,而像素渲染效率则提升为原来的1.3倍到2倍。以 Oculus CV1 为例,其2160X1200像素的屏幕采用“多像素着色技术”所需要的显卡性能会比原来下降30%到50%。
Nvidia 还在推广的一个概念是高优先级图形上下文。通过传统的 DirectX 接口进行渲染时,当你头部从 A 点转动到 B 点,开发者用一个固定进程来处理画面。Nvidia 放宽了进入渲染路径的窗口,使得头部追踪所带来的不可预估的变化可以被开发者更为迅速地修正。
说了这么多 AMD 与 Nvidia 在 VR 图形技术上的大力投入,但他们都还无法代表一个正式的标准。这就意味着游戏及其他内容制作商不得不同时支持两种技术以获取每种显卡架构的最佳性能。没错,正像是现在同时开发的 iOS 与 Android 两种应用那样。
这篇对于图形制作技术的介绍,加上先前的虚拟现实交互与图像显示技术这两部分的内容,就是 Niel Schneider 在 Virtual Reality Basics 一文所讨论虚拟现实技术与概念的全部内容。下面我想以 Niel Schneider 本人的总结来结束全部内容。
总结:
我一直在参与 VR 行业的发展,特别是它这两年突然火起来之后,这个行业正在发生的事情真的很吸引人。在消费者买到第一个虚拟实现头盔之前,我就已经看到了无数人专注于把为把图形带上 VR 屏幕这一目标所进行的各种创新,而现在越来越多具备核心功能及广泛细节追求的虚拟现实头盔出现。除了那些全新的实验性想法在浮出水面之外,我们更应该注意到那些不幸失败的主意。
然而,我们必须提醒自己的是,这场技术比拼是没有终点的。跟学习曲线有限的传统显示技术不同,虚拟现实领域每一个新增元素的出现都有可能戏剧性地改变我们对于虚拟现实或其他沉浸式体验技术的理解。根据 Sony 沉浸式技术团队总监 Simon Benson 的说法,一项可以把视场大小仅仅增加5度的技术就能改变一切。
亲眼看到 Oculus CV1, Valve/HTC Vice, FOVE, Starbreeze VR, Immersion-VRelia 的 GO 平台及其他数不清的产品的面世,这一切意味着一个多样化的行业正在成型,我始终相信美好的事情即将发生。只要这些平台别把自身限制在单一的品牌上,或是莫名其妙的no zuo no die,这一领域对于消费者和供应商双方来说都有足够的空间来取得双赢。
Geeker 说
与国内科技圈大家都在拼命做着各种毫无新意长得一模一样的手机不同的是,国外科技圈这两年是真正在下功夫去解决虚拟现实技术所面临的一系列技术难题。我实在不想在文章结束了才告诉你我们一直在讨论的东西跟大家所理解的把手机放进“XX魔镜”里看3D视频其实是完全不一样的东西。如果你现在才知道,可以借本文进一步去了解一下“虚拟现实”里面究竟都有些什么。
当消费者拿到最终产品的时候应该很快就能发现真正的 VR 具体是一种怎样的体验,然而在这个过程中已经持续了数年甚至数十年的技术沉淀、以及开发者为了“视场仅仅增加5度”所付出的努力,绝不是每年开数场新品发布会的所谓“良心”公司能够相提并论的。我不知道 VR/AR 还需要多久的技术积累才能够颠覆电影、电视、电脑或手机等各种屏幕,但如果你还记得第一次在电脑上玩起《反恐精英》《魔兽世界》激动心情,或是第一次观看《黑客帝国》《盗梦空间》时的烧脑感受……那么当你拿到真正的 VR 时能够找回过去的那种兴奋感,所有这些团队的努力与投入就会具有真正的意义。
关注我们的微博:@极客视界V 关注我们的微信号:Geekview