欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

美军VR专家说VR难成功 Oculus觉得言之过早

程序员文章站 2024-01-18 23:10:16
关于这个问题,Ocululs 的第二名华人工程师胡韬(taohu.usc@gmail.com),此前曾参与 Oculus 多个 早期 VR 软件项目的开发,从他了解的相关知识与信息分析,觉得可能有点言...

美军VR专家说VR难成功 Oculus觉得言之过早

关于这个问题,Ocululs 的第二名华人工程师胡韬(taohu.usc@gmail.com),此前曾参与 Oculus 多个 早期 VR 软件项目的开发,从他了解的相关知识与信息分析,觉得可能有点言之过早了。以下为胡韬投稿正文:美军VR专家说VR难成功 Oculus觉得言之过早

最近被一篇名为《美军专家表示 VR 可能永远不会成功》的文章刷屏了,好多朋友过来问我 VR 是不是伪需求,VR 行业能走多远。我认为,这篇文章本身包含了不少作者的个人情绪在里面,而针对这篇文章的很多评论也多多少少夹杂了个人情绪和利益站队。我尝试刨去这些干扰,只给大家讲些事实,结论大家自己去判断。

先说下自己的背景,我于 2014年7月 加入 Oculus,当时 Oculus 刚被 Facebook 以 23 亿美金收购。我有幸参与了不少早期 VR 软件的开发(Oculus Store、Oculus Video、Oculus Social),眼看着 Rift/Gear 从粗糙的开发者版本逐渐迭代为成熟的消费者版本。与此同时,整个 VR 产业在 Oculus 和其他厂商的推动下逐渐浮出水面。当然,最兴奋的还是可以和偶像 John Carmack 一起工作。(关于 John Carmack 的故事,一天一夜都讲不完,有兴趣的朋友可以翻阅《Masters of Doom》)

美军VR专家说VR难成功 Oculus觉得言之过早

回到美军专家 Steve Blake 的那篇文章,他的核心观点是说佩戴 VR 设备时的恶心眩晕问题 (英文有很多种说法,包括 nausea、motion sickness、simulator sickness 等,以下简称 “眩晕” ) 无法解决。

首先,我们来看看 “到底是什么原因导致了眩晕?”。Oculus 的开发者博客上其实已经有一篇文章系统性地论述了这一问题(VR Sickness, The Rift, and How Game Developers Can Help)。文章写于 2013年,作者是 Tom Forsyth, 一位纵横游戏业 20 多年的老兵,曾在 Valve、Intel、 RAD Game Tools 工作过。他描述了导致眩晕的一些原因:

一、可以解决的。

主要有如下四点:

1、错误的畸变校正 (Distortion Correction)

为了增强用户的沉浸感,VR 设备会采用一组放大镜片来扩大用户的 FOV (Field of View,视角),原理和广角镜头是一样的。但是,视角扩大的同时,图像也会发生畸变。传统的思路是从镜片着手,采用昂贵的非球面镜片来尽量减小图像的畸变。而 Carmack 则逆势思维,在图像渲染时直接进行逆向畸变,然后通过透镜来抵消这一畸变。这样做的好处是显而易见的,它减去了采用非球面镜片所带来的额外成本。而这样做的挑战在于--需要精确地计算逆向畸变的参数值。如果数值不准确,用户通过透镜看到的图像依旧会带有畸变,从而产生眩晕。幸运的是,主流厂商 (Oculus, HTC, Google Cardboard, PSVR) 都在他们提供的 SDK (Software Development Kit, 开发者工具包) 里帮开发者解决了这一问题。

美军VR专家说VR难成功 Oculus觉得言之过早

2、错误的瞳孔距参数 (IPD, Interpupillary Distance)

在模拟 3D 成像时,渲染在屏幕上的图像会分为左右两屏,分别模拟人的左右两眼所看到的图像。这两个图像基本相似,除了些微的差异 (这点大家在上面的图片中也可以看到)。差异的大小取决于人的瞳孔距,而不同人的瞳孔距是不同的。所以,在进行图像渲染时,就需要考虑用户的实际瞳孔距。如果瞳孔距参数设置的不合适,用户就无法聚焦,从而产生眩晕感。在之前的 DK2 开发者版本中,Oculus 提供了参数设置工具来让用户提前设置自己的瞳孔距参数。而在最新的 Rift 消费者版本中,Oculus 更进一步,直接提供了一个硬件开关来动态调节瞳孔距参数。

3、高延迟 (Latency)

美军专家 Steve 也在文章中提到了延迟问题。这里的延迟,指的是用户产生输入 (如头部转动) 到用户看到图像变化之间的时间差,如果延迟足够大,就会在用户所感知的行动和实际所见之间产生错位,造成眩晕。Oculus 首席科学家 Michael Abrash 有一篇文章专门讨论这个问题 (Latency – the sine qua non of AR and VR)。这篇文章写于 2012年 底,对导致延迟的原因做了精确的阐述。以头部转动为例,从用户转动头部到实际看到眼前图像变化,需要经历 3 个环节:传感器检测到头部转动角的变化->CPU 计算出新的需要渲染的图像->屏幕更新图像。每个环节都会产生延迟,当总延迟高于 15ms 时,就会产生较为明显的眩晕。文章还指出了相应的解决方案--使用高刷新率的传感器和 OLED 屏幕。做为 Michael20年 的老朋友,Carmack 通过工程努力以及推动 Oculus 与三星之间的合作,完美实现了这一方案。另外,Carmack 还在第 2 个环节做了进一步的优化,引入 ATW (Asynchronous Timewarp), 把延迟控制在了 15ms 以内。这里面的精彩故事可以从 Carmack 在 Oculus Connect 上的演讲中找到。

4、不符合 VR 的产品设计准则

VR 应用的开发和传统 3D 游戏的开发有不少相似性,但因为 VR 提供了全新的交互方式,二者又有很多不同。Valve 的 Joe Ludwig 专门写过一篇文章来阐述 VR 应用开发和传统 3D 游戏开发的不同以及注意点 (Lessons learned porting Team Fortress 2 to Virtual Reality)。

二、无法解决的。

正如美军专家 Steve 所描述的,这里面主要有两类:

缺乏深度信息:正常人眼在观看物体的时候,是有焦距的,不同焦距对应不同的视角,在视角内的图像,会很清晰,而在视角外的,就会比较模糊。玩过单反的朋友应该对此有比较深刻的体会。但是,目前的 VR 设备在进行图像渲染时,并没有考虑焦距,都是默认焦距为无限远 (既所有的物体都能清晰看到)。这个问题其实并不是非常严重,但是有少部分人会因为这一原因而导致眼疲劳,造成眩晕。

美军VR专家说VR难成功 Oculus觉得言之过早

运动信息感知的错位:这里导致眩晕的原因其实和之前所述的延迟类似,即用户所感知的行动和实际所见产生了错位,更深层次的原因是视觉神经和前庭刺激 (vestibular stimuli) 之间无法达成一致。比如说,用户在 VR 世界里玩跑酷游戏,但是在现实世界中却静坐着。其实,现实生活中的一些眩晕,也是由这个原因导致的,比如说晕车晕船。

Tom Forsyth 的这篇文章写于 2013年6月,事实上,站在 2016年 的今天,我们再回过头去看, 上面所说的两个无法解决的问题,都已经得到一定程度的解决。最新的 AR 设备,已经可以展示深度信息(参考硅谷小伙伴 Amber 的文章Magic Leap 和微软的 Hololens 相比有哪些异同点?,他详细描述了 Lightfield Display 技术);而最新的 VR 设备,已经实现了位置追踪 (positional tracking),意味着用户在真实世界中的移动可以一对一的映射到虚拟世界中。而诸如 Virtuix Omni 这样的硬件,也在尝试解决如何在虚拟世界里*奔跑的问题。

另外,在产品设计层面,开发者们也有很多创新。Steve 所说的第一人称模拟飞行是 VR 里最容易导致眩晕的一类应用(视觉神经和前庭刺激有非常强烈的不一致),但是用户又偏偏非常喜欢这种类型的应用。于是,机智的开发者们通过各种产品设计层面的创新,来满足用户的需求。无论是 GearVR 上的 Smash Hit, 还是即将上线 Oculus Rift 的 Eagle Flight, 都是其中的典范。

美军VR专家说VR难成功 Oculus觉得言之过早

好了,讲到这里,我相信大家对于美军专家 Steve 的观点,已经有了一个更全面的认识。Steve 的观点,放在 2016年 的今天,是很难站住脚的。另外,在其余一些来自他的判断中,也有不少有漏洞,具体如下:

1、“每个人都觉得这些设备是崭新且具有革命性的,但这不是真相。在这两年发生的事情,仅仅是这些设备的价格从 8 万美元跌到 5 百美元。我们并没有做出太多技术上的创新”, 这个论据非常脆弱,位置追踪和手势追踪 (hand tracking),都是当代 VR 设备的核心技术,这些技术在 20年 前都是不存在的。

2、“目前大多数 Demo 都是宣传性质的,在其他的行业展会上通常都是只有几分钟长的 VR 内容。我不知道这些厂商是不是故意这样做的……这也解释了为什么这么多人认为他们喜欢 VR”,这是典型的阴谋论,事实上,早期的 demo 都只有几分钟长,是因为他们真的只是 “demo”。Oculus 即将上线的三十多款应用,每一款都可以让用户体验好多个 “几分钟”。

3、“我们都是专家,知道自己在做什么,但当你站在我们的实验室里举目四望,会发现没有一个人戴着 Oculus。仅在很少数的情况下,研究人员会戴上 VR,只是为了确认一些内容,然后在 30 秒内摘下来。大多数时候,我们都是在并排放置的两个显示器上观察视觉效果。当项目最终完成时,因为再也不用带这些头盔了,我们所有人都很开心。” 工程师不在开发时佩戴 VR 设备,并不是不喜欢 VR,而是因为戴上后就没办法进行开发了。虽然 Unity/Unreal 都在尝试 VR Editor (可以实现头戴 VR 设备进行开发),但是目前阶段效率最高的还是在 PC 上开发,然后必要时戴上 VR 设备检查效果。另外,项目完成了,大家都很开心,难道不是因为项目完美收工么?

在硅谷的各种 VR 展会上,经常能碰到一些十几年前就心怀 VR 梦想的技术人员,他们对这个领域倾注的热情,是常人难以想象的。正是这群人十几年的技术积累,使 VR 在今天有可能走进每个人的生活。文末,引用 Michael Abrash 在 Oculus Connect 上的一句话,和所有关注 VR 行业的同学共勉。

“VR 时代正在来临,这一段崎岖的小路能否走通,靠的是几千个关键人物的行动——这里面很可能就包括你。这也许让人难以置信,然而我完全坚定。”

“VR is coming, but the path it takes depends on the actions of a few thousand key people, potentially including you. That may be hard to believe, but I’ m completely serious.”