Facebook VR方案总结(一)

VR虚拟现实是一种通过创建虚拟世界,使用户沉浸其中的技术,其萌芽于上世纪60年代。但VR第一次走进大家的视野,或许要归功于Facebook。2014年Facebook耗资20亿美元收购VR创业公司Oculus,成为目前最大的VR设备研发、生产厂商之一。

VR最重要的目标是为用户创造沉浸感,创造乐趣,创造良好的人机交互方式。然而根据近几年VR产品的市场调查发现,各类虚拟现实技术普遍存在着一大缺陷:用户长时间使用VR设备会产生强烈的视觉疲劳。这成为了VR发展最大的绊脚石。基于此,Facebook/Oculus不断突破创新,目前采用如下方案生产Oculus Rift设备,为人们提供尽可能舒适安全的虚拟环境。

图1 Oculus Rift

1. 双目视觉

(1)基础

目前,VR设备以头戴式显示器(HMD)为主,通过向人眼发送光学信号的形式实现虚拟现实。因此涉及到如何产生三维环境的双目视觉原理是VR技术的基础。人类的双目视觉一定程度上是因人的双眼看到内容的不同,即双眼差异,人脑结合这些内容进行立体成像而产生。

图2 双目视觉

据此,Oculus Rift为双眼分别提供一副图像,而两幅图像也是通过两台距离与瞳距相近的虚拟相机在同一时刻捕获虚拟环境产生。要注意的是,不同人的瞳距是有差异的,Facebook通过调查确定人眼平均瞳距也是Rift相机透镜中心的间距为63.5mm。

实际上,双目差异引起的立体成像仅是大脑进行深度挖掘产生三维效果的一部分。人眼还可以通过单目深度提示、物体相对比例、结构级差、光线等方式或因素做到这点。对于目前计算机创造的虚拟内容而言,已经可以囊括绝大部分的深度提示信息。

(2)舒适观测距离

为使人在佩戴VR设备观察物体时,不感到疲劳、恶心,需满足人眼自适应度和聚散度的要求。前者表示人眼为看清事物聚焦,调节晶状体形状的程度,后者表示双眼为产生特定深度平面旋转的角度。两者在视觉系统工作时相辅相成,互相作用。

基于此,Rift创造了一种分离两种要求的环境,固定自适应性的要求,但聚散度存在可调节的范围。这很容易理解,VR设备产生的图像与人眼的距离不会有太大的差异,经常固定于某个距离,因而聚焦程度不会有过大的变化。但不同的图像或者视频仍需要人眼实时调节聚散度来获取实时的深度平面。

调查研究发现,上述两种要求可分离,但人长期观测不易产生疲劳所需的双眼与物体的距离范围为0.75m-3.5m。目前Rift采用的人眼与屏幕距离等效为1.3m,同时在Unity下进行环境设计时也尽可能将主要事物放置于0.75m-3.5m的距离范围内,保证了该方面的舒适性。

此外,Facebook的开发者们发现景深(depth-of-field)可以提高用户的沉浸感和舒适感,因而他们在建造环境时人为地模糊了一些背景或事物来提升用户体验。

(3)潜在问题

某些场景下设备提供的不适当的双目差异引起的闪烁现象

单目深度提示信息量较少的场景下,光幻觉引起的感知错误

2. 视角FOV

镜头视角FOV是指一个摄像机镜头所能覆盖的范围,通常以角度来表示。在VR中,虚拟相机的FOV(cFOV)必须与设定的可视区域(dFOV)匹配,通常cFOV与dFOV的比值为1,否则会引起背景的扭曲,导致用户不适、恶心等负面影响。

在Rift中,最大可视区域由屏幕、相机透镜、人们的穿戴方式决定。相应的配置工具据此得到最大可视区域及相关信息,Rift的SDK也会根据该信息推荐合适的相机FOV。

图3 VR设备的FOV

Rift通过在可视图像周围增加黑边的方式,允许开发者在不改变cFOV与dFOV比例的情况下修改二者的范围。经测试可发现,利用小图片进行的FOV设置有更好的效果,但是图像尺寸的不断缩小会迫使用户有更多的头部运动,影响用户体验。基于此,Rift的FOV设置为110o。

3. 显示

(1)基础方案

目前,Rift DK2采用的分辨率为21601200,短暂余辉OLED屏显示,90Hz的刷新率,是基于初期产品DK1 1280720分辨率, 60Hz刷新率,LCD屏显示的一个全面升级,高分辨率意味着更优质的画面细节和“纱窗效应”的减弱。

图4 纱窗效应

而来自Valve的低视觉残留技术也为降低运动画面的眩晕感做出了贡献, DK1用户反应的严重视觉残留问题,在DK2上得到了很大的改善。

另外一个优势来自Rift DK2使用的OLED屏幕。OLED屏面板上的每个色点都可以单独发光,不像普通LCD面板需要背光照明。当OLED上的发光二极管不工作时,屏幕将是完全黑暗的,这意味着黑色将更加接近于真实的黑色,对比度会更好,画面色彩也会更加饱满。

(2)显示时的闪烁问题

VR产品在显示时存在一种闪烁问题,表现为全屏幕突然变亮或变暗。实际上,不同的人对于该现象的敏感程度是不同的,但可以总结出两条规律:人对于边缘的闪烁更为敏感;亮屏会引起更多的闪烁。针对这两点,Facebook开发者在边缘地带使用了较多的暗色。此外,高刷新率也可降低这种效应,这也是为什么设备需要在无缓冲,垂直同步的条件下,以75FPS的高速率传输的原因之一。

(3)内部渲染分辨率

Rift显示的分辨率有21601200,然而由于设备镜片的弯曲,渲染后的图像必须经过一定的变换满足正常的显示条件。为提供充足的图像矩阵数据,内部渲染后的图像需比最终显示的图像更大,分辨率会更高。

(4)动态呈现的“替代品”

人对深度、距离的感知会随着事物距离的增加而减弱,例如,我们可以轻易分辨出课桌上物品与我们的远近,但并不一定能快速判断出距离很远的两座山的远近。根据这一不敏感性,Rift为减轻渲染负担,利用一些简单的多边形来替代虚拟环境中远处的一些物体,从结果上看,这样的替代并没有非常大的影响。

(5)法线映射/视差映射

法线映射是一种映射技术,在不需要额外提供模型信息的条件下,便可提供逼真的光线信息,然而它在3D技术中并不被常用。因为这种映射没有考虑双目视差或者运动视差的因素,在3D层面运用的效果就像是平面结构直接贴在3D模型上,并不符合实际。

Rift采用的视差映射是基于法线映射的方法上的,该技术利用虚拟内容编辑器生成的高度示意图,基于每个被采样到的环境表面,重新计算或者变换整个环境结构的坐标以满足视差特性。同时,视差映射基于有良好细节表面产生的效果是最好的。

4. 运动

(1)移动速度

人们使用VR设备时,一般存在两种移动速度:虚拟环境中的移动速度和现实中的移动速度。经调查测试发现,当两种速度不匹配,即视觉感知和肢体感知不协调时,也会造成严重的疲劳、恶心,且虚拟环境中的相对速度越快,这种症状越明显。

因而Rift在常规场合下设置的虚拟移动速度均接近正常人的移动速度,以步行速度为1.4m/s,跑步速度为3m/s作为默认值。

在移动的操作中,加速的过程也是人们产生不适的重要原因,因为人的前庭系统对具有加速度的运动更为敏感,尤其是当视觉感知的加速与肢体实际产生的加速不完全统一的情况下。针对该问题,Facebook还无法从技术层面上进行压制,目前只是建议用户减少加速频率。

(2)运动的控制程度

如同司机相比乘客不容易晕车、犯困一样,Rift赋予了用户足够的运动控制权,并减小了相机的抖动程度,防止眩晕。同时,Oculus会适当提供后续的场景以及可能发生的活动,让用户可以从容应对即将发生的事件,这也是提升舒适度的一个做法。

(3)头部运动

目前,第一人称游戏中大多会有上下摆头的动作以模拟真实的运动状态。实际上,该效果对于急需沉浸感的VR体验来说是降分的,与之前所述的加速度引起眩晕的现象相似。因而Facebook建议开发者、设计者不添加任何非实际头部运动引起的镜头摆动。

(4)前向运动及侧向运动

在VR中设计的人体运动方式应符合人体动力学,因而Facebook建议技术人员在开发中同时考虑人体前向运动、后退运动、侧向运动的轻重关系和相关性。因为如果在体验中完全消除了不常使用的后退运动、侧向运动,也会造成某些运动状态的繁琐以及肢体、视觉感知的不协调。

5. 跟踪

在上一节提到,VR中的两类速度需要协调才能保证沉浸感。而这个协调的过程中,便涉及到跟踪技术。Rift设备安装了大量传感器来跟踪用户的位置、头部运动、肢体运动,并配合相关技术实现低延迟的实时跟踪。

(1)方向跟踪

Rift的头戴式显示器中包含陀螺仪、加速计、磁力计、红外发光二极管、红外感应摄像头等传感器,这些仪器可以准确确定用户头部偏摆、俯仰、转动的状态。Rift通过一种名为“传感器融合”的过程综合各类传感器信息,判断、计算得到用户在真实世界中的朝向,并与虚拟世界的角色保持实时同步。

(2)位置跟踪

位置跟踪技术可以说是Rift的特色之一。Rift采用的是一种6自由度(6DoF)的位置跟踪方式,通过活动区域内放置的相机捕捉设备上的红外LED的位置进行实时同步跟踪。实际上,这里的位置跟踪也主要是用户头部的跟踪,在相应的模型中,以用户头脖的轴心点为默认原点,寻找与用户脖颈、双眼匹配的特征向量,并将现实空间规划为点集或是空间向量集,依据这些特征点或特征向量判断两部分的相对位置以确定实际位置。

图5 VR位置跟踪

同时,Rift赋予了用户随时随地更改、重置跟踪模型原点的权利,增强了使用的灵活性,并提供获取最佳跟踪状态的指导或是警告。此外,Rift还配置了校准工具,以防用户操作失误造成的定位丢失。

关于跟踪丢失的问题,Facebook的做法是利用方向跟踪代替位置跟踪进行后续的定位,但这样的做法难为会有误差,因而Facebook也建议VR内容的开发者可以设计出虚拟场景的亮度随定位能力下降而降低的效果,以提示用户。

(3)跟踪延迟

在VR中,跟踪延迟包含传感器的响应和融合、模型渲染、图像转换、传输等过程消耗的时间。而Rift的一个优势正是实现在完成该过程的前提下低延迟的VR体验,这是VR实现沉浸感是十分重要的。

Rift做到低延迟的途径是采用预测跟踪技术,该技术并不能直接压缩处理过程的长度或是时间,而是根据当前结果提前得到用户后续可能看到的图像流。这种方式弥补了传感器的响应与渲染带来的大量延迟。

基于预测跟踪技术,Rift的延迟目前可以做到20ms或是更低。经测试,这种程度的延迟以足够让用户沉浸其中,但是Facebook并不满足于此,仍在进行压缩延迟的研究。

6. 用户界面

(1)平视显示HUD

在虚拟世界中,除了显示虚拟环境,还存在一种HUD模式的界面,它是显示在所有3D环境之上,如下图所示,显示人物在游戏或是其他活动中的生存情况。对于电脑、手机上的非立体游戏,玩家很容易将其与游戏环境分辨开来。然而在VR游戏中,由于VR元素包含深度提示信息和双目差异的因素,尽管游戏设计时可将HUD元素放置得离虚拟相机更近,但仍会出现虚拟环境元素比HUD界面元素更靠近用户视野的现象,这会造成视觉上的紊乱,影响体验。

图6 HUD模式界面

针对该问题,Facebook团队曾尝试将HUD界面摆放至人眼舒适观测距离边界值0.75m以内,但这种方法经测试后发现,会使HUD界面显得非常突兀、不真实,因而并没有采用。

这之后,Facebook团队转变思路,直接将情报装置放置于虚拟环境内,如同野外求生一样,让玩家自寻信息,例如,游戏地图可具体为虚拟角色手中的卷轴而不再是传统2D游戏的直接显示方式。

(2)虚拟角色

虚拟角色是用户在虚拟世界的化身,与用户的位置、运动、姿势状态保持一致。对于大部分为第一人称体验的VR而言,用户大部分时间内无法看到自己的虚拟角色,如果可以,也只能如下图所示,看到身体的个别部位。

图7 屏幕下方的虚拟角色

显示角色肢体从理论上看有优有劣。好处在于给予玩家尺度感、空间感,缺陷在于虚拟角色和现实状态易存在矛盾。但从市场调查的结果来看,用户大多可以接受这方面的不协调。所以说,任何新兴技术的好坏,必须通过用户的使用反馈才能得知。

(3)武器/道具

类似HUD界面在三维环境中的问题,在传统游戏中常位于屏幕下方人物使用的武器和道具模型,也会在VR中出现由于模型距离接近导致的人眼聚散度跨度大、立体映像困难的问题。Rift针对此问题所做的调整是将相机的位置放至虚拟角色颈部以上,从而塑造出一个全身的角色,把武器、道具渲染为角色的一部分。

7. 用户输入与移动前行

(1)用户输入

对于VR的用户输入方式,我们需注意到,一旦用户戴上了HMD,便无法再看到传统的输入设备的实物,如鼠标、键盘、手柄,只能通过触碰的方式完成交互。虽然大部分人均可以在熟悉这些设备后,只通过接触的方式完成输入,但这仍是不方便的。

就目前情况而言,Facebook团队认为传统的游戏手柄仍是VR体验中,用户需要有实体感地输入时最好的选择,因为手柄的操作相比而言最便捷,且能在一定程度上切合VR所需的沉浸感。但他们仍然强调目前的输入方式对于VR来说都不是最理想的,Oculus也依旧在寻找与VR内容进行交互更直观,更具创造性的方式。

图8 Rift配套手柄——Oculus Touch

(2)移动前行

VR中有时通过接收用户发送的输入信号,也可以到达虚拟角色移动前行的效果。目前,VR设备通常采取与传统第一人称游戏相同的方法,即通过鼠标、键盘等设备输入来移动角色,这种方案对于用户来说熟悉且容易理解,然而该方式会造成模拟器晕动症的现象,因而需要一种符合VR环境的控制方案。

Rift的运动控制方案基于传统方案,加入了“坦克视角”,顾名思义,是令虚拟角色的移动方式与坦克相似,用户通过媒介的输入控制前行的方向,而用户头部的直接运动控制视野的方向,即角色整体的前进方向与头部朝向分离。这种方案的优劣也均存在,部分使用者认为这种模型更加真实、舒适,但也正是因为“坦克视角”,会让部分的使用者烦恼,他们无意间身体连带头部的摆动便会出现“坦克视角”的效果。所以Facebook团队认为他们还需对该方案进行更多类型的测试和调查才能确定其有效程度。

8. 360度视频

Facebook/Oculus的VR团队通常使用广为人知的Unity、Unreal游戏引擎设计虚拟环境,同时,Facebook已为VR提供了360度流媒体直播服务。不管是预先设计还是实时直播,两者都是以360度视频的形式将内容呈献给用户。

360度视频也被称为球形视频,可以记录同一时间点下区域内360度的风景。把360度视频置入VR的方式一般是将虚拟角色置于区域中央,这样用户就可以环顾四周,感受到各方景色。

图9 360度视频

(1)单目360/立体360

目前大多数的360度视频是单视场的,这类视频需用户通过对比图像流中物体相位位置、尺寸来弥补部分缺失的深度信息,这样的效果并不能用于完全沉浸的VR中。

立体的360度视频则在单目360度视频基础上,为双眼分别渲染出新的图像,符合双目视觉的原理。由于附加的渲染及其带来的其他影响,创造高质量的360度立体视频是一项较为艰巨的任务,需对每个步骤严加考虑。

(2)分辨率

分辨率是制作360度视频的困难之一,开发者通常会碰到视频实际放映的分辨率小于解码后原始分辨率的问题,这会影响用户体验。经测试分析后,开发者们发现是视频图像流的投影方式与最终显示方式的矛盾导致了这种现象。360度视频一般是以经纬图投影方式获取的,这种投影方式即使在制作时有很高的分辨率,但放到显示屏上会有明显的拉伸,用户只能看到其中的一部分。于是,Facebook团队开发了一种名为“Transform360”的算法,该算法将经纬图投影方式下的360度视频转变为立方体纹理投影方式,其优点如下:

• 立方体每一面的映射相对独立且没有任何失真。同时,像素点分布均匀,不包含冗余信息。

• 每帧的像素数量下降了25%,从而提高了空间效率,优化了内存使用,并提供更高质量的视觉感受。对于实际应用中采用的许多不同的算法和参数,均可到达更快的处理速度。

• 对编解码器非常友好。主要表现为视频编解码器中运动矢量为直线形式,正六面体不会像经纬图方法那样将图像扭曲、拉伸。

• 允许使用者调整输出视频帧的质量,甚至单帧内各部分数据的质量。

• 基于多媒体视频处理工具FFmpeg的处理流程,将计算与逻辑转换操作分离。这样开发者不必考虑FFmpeg算法实现、集成的具体细节,利用各方面的资源便可仅针对视频转换进行灵活开发。

经测试,利用Transform360处理后的360度视频的分辨率、视觉质量有了明显的提升,可以改善用户观看360度视频的体验质量。

(3)播放

目前视频以及360度视频更多是通过流媒体直接播放,无需下载,因而用户也希望在VR中实现这点。当然对于开发者而言,两种观看途径都需具备。

目前的流媒体播放多采用自适应播放的技术,自适应主要表现在HLS/Dash 等流传输服务平台根据用户网络带宽选择最合适的传输速率,并根据网络波动状态作出实时调整。除此之外,HLS/Dash 等平台为提升VR体验质量,目前仍在进行漏斗数据流、快速编译码等技术的开发,但都处于起步阶段,尚未成熟。

(4)小结

可以说360度视频是现阶段VR的核心、本质,但因VR对360度视频在传输效率、稳定性等方面的表现具有高要求,360度视频涉及到的视频流采集、拼接、增强、渲染、映射等技术,数据编译码、传输技术都会产生新的问题和相应的解决方案,更多的技术细节将会在后续的总结中详细介绍。

总结

Oculus Rift赋予了用户一种前所有未的VR体验,然而VR仍被认为是一种未知的,潜力无限的新媒体,等待着更多具有创造力、想象力的开发者来解开它的封印。

可以说VR是目前可以带来最贴近现实体验的媒体。更何况我们已经在屏幕面前看得太久了,是时候换一种休闲方式了。

也正是各厂商为VR设立的高质量享受的定位,让普通民众对于这项技术的期望越来越高,这对于相关研发团队来说,既是动力也是巨大的压力。因而再着眼望去,目前虚拟现实中最重要的沉浸感与可用性的平衡可能仅是VR设计中诸多挑战的一小部分。

参考自:

https://developer.oculus.com/

https://github.com/facebook/transform360

http://tech.qq.com/a/20160819/004311.htm

https://atscaleconference.com/videos/streaming-360-video/

https://developer.oculus.com/blog/introduction-to-360-video-for-gear-vr/

原文发布于微信公众号 - 媒矿工厂(media_tech)

原文发表时间:2017-09-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏钱塘大数据

超实用!四个方法帮你搞定数据可视化界面设计(附神器)

“仪表板”、“大数据”、“数据可视化”、“数据分析”——越来越多人和企业,开始运用他们的数据来做一些有趣的事情。在我的职业生涯中,有幸参与一大批数据为重的界面设...

39440
来自专栏人工智能快报

Intel Fellow:人工智能与高性能计算将走向融合

作为Intel公司的Fellow,Alan Gara表示随着神经形态计算、量子计算等新型计算、存储、通信技术快速推动百亿亿次计算成为现实,人工智能与高性能计算将...

414110
来自专栏AI科技评论

开发 | 小米再开源!这次是移动端神经网络框架基准测试项目 MobileAIBench

继小米在 6 月宣布自研的移动端深度学习框架 Mobile AI Compute Engine (MACE:https://github.com/xiaomi/...

14130
来自专栏PPV课数据科学社区

快点进来get“推荐系统常用的推荐算法”

? 一、推荐系统概述和常用评价指标 1.1 推荐系统的特点 在知乎搜了一下推荐系统,果真结果比较少,显得小众一些,然后大家对推荐系统普遍的观点是: (1)重...

39490
来自专栏专知

【干货】最全知识图谱综述#2: 构建技术与典型应用

【导读】知识图谱技术是人工智能技术的组成部分,其强大的语义处理和互联组织能力,为智能化信息应用提供了基础。我们专知的技术基石之一正是知识图谱-构建AI知识体系-...

92440
来自专栏大数据文摘

还在看视频读文档学编程?这有7种编程学习方式,哪种最适合你?

15720
来自专栏PPV课数据科学社区

不要担心没数据!史上最全数据集网站汇总

本文将为您提供一个网站 资源列表,从中你可以使用数据来完成你自己的数据项目,甚至创造你自己的产品。

47350
来自专栏钱塘大数据

【盘点】15个开源的顶级人工智能工具

1. Caffe、2. CNTK、3. Deeplearning4、j4. 分布式机器学习工具包、5. H2O、6. Mahout、7. MLlib、8. Nu...

40050
来自专栏数据科学与人工智能

【智能】数据科学管道初学者指南

曾几何时,有一个名叫Data的男孩。 在他的一生中,他总是试图了解他的目的是什么。 我有什么价值观? 我可以对这个世界产生什么影响? 数据来自哪里? 看到你和数...

11230
来自专栏用户3246163的专栏

[脑书笔记]《整体性学习》2-获取和理解信息的技术

这篇脑书继续讲整体性学习的第二部分整体性学习的技术,在《整体性学习》1里面在谈到信息进入大脑的顺序是,获取,理解,拓展,纠错和应用。这篇脑书笔记主要针对这5个步...

13410

扫码关注云+社区

领取腾讯云代金券