龙空技术网

VR 不完全科普指南

人人都是产品经理 98

前言:

今天你们对“js 3d模型”大体比较看重,各位老铁们都想要学习一些“js 3d模型”的相关知识。那么小编在网络上收集了一些对于“js 3d模型””的相关文章,希望同学们能喜欢,姐妹们一起来学习一下吧!

大家都了解VR是一种可以创建和体验虚拟世界的计算机仿真系统,是利用计算机从而生成一种模拟环境,可以让用户沉浸到该环境中。下面这篇文章是笔者整理的关于VR的科普内容,想要了解的同学可以进来看一看。

一、上帝的画笔

你有没有想过创造一个世界?

或者,如果让你当创世神的话,你知道该怎么构造这个世界吗?

千百年来,人类一直试图回答这个问题:用语言、用图像、用视频。可是还是不够。我们从未能真正重现我们所感受的世界,只能凭借真实经验的脑补,将它们当做真的而已。

媒介限制了我们对世界的描摹。

有没有一种方式,能够让我们真正地拿起上帝的画笔?

有一群人,试图用 VR 给出答案。

VR 的历史可以追溯至 20 世纪 60 年代,Philco (现被飞利浦收购)的两位工程师 Charles Comeau 和 James Bryan 制造出了一款用于军事目的头戴式显示器 HeadSight,该设备能够显示来自隔壁房间摄像头的视频画面,摄像头的位置可根据佩戴者的头部移动而移动,从而塑造出一种临场感。

图一,图片来自 THE VR SHOP

作为人类历史上的第一款量产头戴式显示器,Philco Headsight 的视场角仅有 40°,刷新率也仅有 10 Hz,而重量则是…未知。

60 余年过去了,早 Philco Headsight 五年的达特茅斯会议,经历过潮起潮落,终于在上一年迎来了它们最重磅的主角:ChatGPT。

而头戴式设备也并非吴下阿蒙,空间定位、眼动追踪、手势识别、Micro LED、Pancake 光学模组,硬件、算法与工程学的结合,让上帝的画笔呼之欲出。

接下来,就让我们进一步走进 VR 的世界。

二、我们应该如何呈现世界?

正如把大象塞进冰箱需要三步,制造一台 VR 设备也是如此:

让世界在我们的眼前呈现。让世界与我们进行实时地交互。把一切都塞到一台头戴式设备上,让其独立运行。

我们先来谈第一步。

让世界在我们的眼前呈现,这件事我们并不陌生,已然创造了一个赛博世界的我们,透过手机的屏幕,另一个世界的光映入眼中。把手机换成 VR 设备,道理也是一样的:我们需要一块屏幕,然后我们把屏幕的光映入眼中。

1. 一块屏幕

我们需要一块屏幕,以显示另一个世界的丰富。古早的时候,因为看重 AMOLED 的色彩饱和度,VR 显示屏用的都是 AMOLED,但 AMOLED 的像素密度低且难以提升,并且存在纱窗效应(像素低导致的,人眼可以看到像素点),所以便更换成了 LCD 。

LCD 是液晶显示屏,对比度、色域、亮度都不够,同时刷新率低。为了改善 LCD,Fast-LCD 又被引入,顾名思义,Fast-LCD 采用了超速驱动技术,刷新率可以提升到 75-90 Hz,同时用了新的液晶材料,呈像效果上也有所改善。

但 Fast-LCD 仍然存在问题,由于是背光技术,不能自发光,需要有背光光源,所以面板上容易出现漏光现象。为了解决这个问题,业内通常采用 Fast-LCD + Mini LED 背光光源的方案,将 Mini LED 作为 Fast-LCD 的背光光源。Mini LED 实际上就是在背板上集成了尺寸更小的 LED 灯珠,所以亮度、对比度都会有所增强。

目前,Fast-LCD + Mini LED 背光光源已成为 XR 设备的主流方案, 但 Micro OLED 和 Micro LED 将是未来的探索方向。两者都是自发光技术,无需背光,无论从色域、亮度、对比度,还是功耗、分辨率等方面都领先其他方案。随着Apple vision pro 采用 Micro OLED,Micro OLED 的发展将进一步加速。

图二,表格由 MicroDisplay 整理

2. 把光映入眼中

如果说把手机的光映入眼帘,是一件再自然不过的事。VR 设备的光就有所讲究了,从业者至少需要解决三个问题:

近眼成像:视力正常者的最小物距(物体距离眼睛的距离)是 14 cm,而 VR 设备的屏幕物距仅 3-4 cm。深度感知:VR 设备的屏幕呈现的是 2D 画面,而沉浸式体验需要 3D 呈现。视觉放大:VR 设备的屏幕仅为普通眼镜大小,而 VR 画面渲染需要与现实世界同等尺寸乃至更大。

乍听起来,三个问题都如天方夜谭。然而受惠于神经科学和认知科学的发展,也得益于自托勒密时便兴起的视错觉研究,看似无能为力的问题亦都有了解法。

这都要从人的视觉机制说起。

1)人眼的视觉机制

人眼是如何看到事物的?不妨以照相机作喻:人眼是凸透镜成像,晶状体是照相机镜头,视网膜是照相机胶片。

图三,图片来自网络

物体光线从瞳孔进入眼睛,经由晶状体(凸透镜)折射,最终形成在视网膜上的倒立实像,经由人脑的算法自行复为正位。

凸透镜的成像原理,初中时都学过,透镜把平行光线汇聚于一点,形成实像/虚像。近大远小实际上也是因为凸透镜的作用(经过轴心的光线入射角减小,所以高度增加)。

图四,表格来自均一教育

如图所示,焦距固定,物距不同时,成像的距离也有所不同。当物距小于焦距时,物体成虚像,也就是放大镜的功效。

图五,图像来自百度百科

2)凸透镜的作用

运用凸透镜成像的规律,把光映入眼中的其中两个难题就可以解了。根据上图可得,当物体放置到透镜的一倍焦距内,便会在一倍焦距到二倍焦距之间形成一道正立放大的虚像。

什么是虚像呢?即物体的光经过反射而映入眼中的,光与光之间不能形成交汇,但人眼下意识觉得光是直线传播的,所以会自动反向延长光线,使其交汇于一点,从而形成虚像。

图六,图片来自光学影像与镜头

VR 的原理和人眼一样,利用了凸透镜的作用。通过在人眼和屏幕间放置一块凸透镜,屏幕放置于透镜的一倍焦距内,使其在 2 倍焦距出形成了屏幕内容的虚像,根据 B 站 Up 主消失的模因推算,大概是 280 英寸的巨幕大屏。

图七,图片来自 Up 主消失的模因视频截图

由于凸透镜的作用,屏幕的成像距离也被调整,如 Quest 2 的像距在 1.3 m,已经能够满足人眼的观看范围了。

不过,由图六可知,人眼与透镜、透镜与屏幕间,都需要保持合适的距离。如果透镜离人眼过近,像距也会被拉近,从而不能满足人眼的观看范围。如果透镜过远(仍要小于焦点),那整个设备的体积又会增大。

透镜的距离也影响着 FOV 的大小。这里要再稍微解释下 FOV 的概念,一般我们所谈论的都是水平 FOV(field of view),是指屏幕被透镜折射,最顶部和最底部的两道光线射入人眼所形成的夹角。

FOV 越大,人在屏幕中所看到的虚拟视野就越大。但问题在于,想要增加 FOV,要么把透镜后移,让其更靠近人眼,或者增加镜片的厚度。透镜后移,会导致像距被拉近,不能满足人眼的观看需求;增加镜片厚度,又会导致设备整体过重,并且同样的,像距依然会有问题。

实际上,FOV 并不是越大越好。现实世界中,人正常聚焦的视野范围一般在 110°,如果物体出现在 110° 外,人一般要转头去看,增加疲劳度。所以,只要保证 FOV 在 110° 左右,其实也就够了。

另一方面,透镜所呈现的放大版屏幕,实际上是原来屏幕的投射,屏幕分辨率是没有变的,FOV 越大,对屏幕分辨率要求就越高,差的屏幕甚至能看到像素点。从工程学而言,找到 FOV 同屏幕、透镜厚度、设备整体尺寸的平衡关系,才是实际的难点。

3)透镜的演变

在实际工程中,透镜的演变,或者说 VR 中光学方案的演变,大体可以从非球面镜片到菲涅尔镜片,再到 pancake 折叠光路。

图八,图片来自网络

一般的球面镜片,镜面各处曲率相同,所以光从镜片折射出来,会聚焦在不同的位置,也因此导致模糊和外围失真的情况,这种现象被称为球面像差;非球面镜片就是在球面镜片的基础上,改变表面的曲率,使得折射出来的光能够汇聚在一点上。这样,球面像差的问题就能得到缓解或消除;但非球面镜片有个问题,它太重了。

于是菲涅尔镜片被搬到了 VR 中,简单来说,透镜的主要作用是为了折射光线,而透镜中存在一部分区域不折射光线,既然如此,直接把这部分拿掉,也完全不影响透镜的功能。菲涅尔凭着这样的方式,减了一波重量。

但菲涅尔镜头各处曲率不变,焦距无法进一步被压缩,整体仍然较重,VR 眼睛也无法做得轻薄;同时由于曲面不连续,成像精度受限。非球面和菲涅尔镜头,都是采用平行光路的方案(光从透镜中透出,进入人眼)。想要再轻薄,目前最佳的实践是采用折叠光路(拉近焦距,通过多重反射进入人眼,既缩小焦距又保证成像)。

pancake 的名字也反映出了它的结构,就是像饼干一样的四层镜片(各家有不同,如果用 micro led 会有五层),它的光学原理不必深究(反正也搞不懂),只需记住它的解决方案是通过折叠光路使得焦距近一步被压缩。

焦距被压缩,其实不单改变厚度,也改变了视场角,近大远小,焦距变短,那视场角就会变大。当然这只是理论上的(理论上限 pancake 可达 200°),现实中由于工艺的问题,pancake 方案的视场角还没有菲涅尔广,在 60 – 90° 之间,而菲涅尔可以达到 100° 左右,当然,离人眼的 120° 还有一段距离。

当然,pancake 也有自己的问题,因为有两次反射的原因,理论上 pancake 的入射光线亮度只有一开始的 25%,这就要求光源本身得很亮。

同时由于多路反射,容易出现鬼影的情况,对工艺要求很高。但这些都是可解决的问题,平行光路有它的上限,如果要塑造沉浸感 + 便携的设备,折叠光路还是更好的方案。

由于 pancake 「损光」的特性,屏幕亮度就显得尤为重要,目前主流的搭配仍然是 Fast LCD + Mini LED 背光+ Pancake,但更理想的方式是 Micro OLED + Pancake,相比于传统 LCD 的 500 尼特亮度,Micro OLED 的亮度可达 1000-6000 尼特。

另外值得一提的是,既然是折射,画面一定会失真。现行的光学方案都是先让屏幕中显示的画面先失真(桶形畸变),再通过透镜折射恢复正常(透镜会通过枕形畸变将桶形畸变的图像恢复正常)。

图九,图片来自 POMEAS

4)沉浸感的实现

如果说凸透镜解决了近眼成像和视觉放大的问题,那么还留存着一个尚待解决的问题:深度感知。这也是实现 VR 沉浸感的关键。

解决方案其实再简单不过,只需在透镜前放置两块屏幕(或一块屏幕隔成两块),分别呈现同一图像的不同成像角度即可。

图十,图片来自网络

人眼是个非常神奇的存在,本质上当我们看向三维物体时,左右眼看到的其实是同一物体的不同角度的平面成像图像。当两种不同角度的图片到达人脑后,人脑内置的视觉算法可以自动将两张平面图片合成一张立体图片。

VR 成像,由于所有的内容都只呈现在屏幕上,而屏幕是平面的,所以无法像真实的三维物体一样,由于视差(两眼看到的角度差异)的存在而感受到立体感。所以,一不做二不休,干脆在两块屏幕上呈现同一物体的不同成像画面,利用大脑的自动合成功能,模拟立体感知。

虽然,双目视差的机制让 VR 眼镜能够模拟三维影像的立体感。但沉浸感除了立体,还有对于深度信息的感知。简言之,怎么区分物体离我们的距离。

5)远近感知

人眼感知世界的方式,主要依靠四种机制:

双目汇聚(vergence)双目视差单眼调节(Accommodation)大脑补充

其中,双目汇聚、单眼汇聚和大脑补充都能帮我们感知到世界的远近信息。在日常感知中,大脑补充其实是最为常见的体验,因为我们在观看视频时,视频画面本身是 2D 的,可我们却能从中判断出物体的远近,很重要的原因就是大脑补充。

大脑补充,简言之即人脑根据经验的总结,通过一些画面线索进行的距离判断,比如近大远小(学名仿射)、遮挡关系(近处遮挡远处)、光照阴影、纹理差异、先验知识(比如飞机和风筝同样大,但飞机比风筝远)。这些知识学过画画的同学不会陌生。

双目汇聚(vergence),简单理解,是指两只眼睛看向同一物体,这个过程需要转动眼球肌肉,使得双眼聚焦同一物体。当物体靠近或远离眼睛时,汇聚角(图中所示的夹角)也会变大缩小,同时眼部肌肉会收缩或放松。也即,通过感知汇聚角的范围和睫状肌的紧张程度,人眼可以分辨物体的远近。

图十一,图片来自 Relative contributions to vergence eye movements of two binocular cues for motion-in-depth

单眼调节(Accommodation):眼睛依靠睫状肌进行聚焦控制,越靠近人眼的物体,成像会越模糊,通过模糊程度判断物体的远近。当眼睛聚焦在近处物体时,远处物体会模糊;相反,当聚焦在远处物体时,近处物体会模糊。

单眼汇聚只依靠单眼即可判断,一个典型的实验是:闭上一只眼睛,左右手分别竖起一只手指,与眼睛呈一条直线。当眼睛聚焦于近处手指时,远处手指模糊;反之亦然。本质上,单眼汇聚和双目汇聚是一体两面的存在,前者告诉大脑物体离人眼的绝对距离,后者告诉大脑双眼视线形成的绝对角度,两者都是在物理上可测量的。

VR 中的远近信息传递,主要运用了大脑补充,但因为屏幕的距离是固定的,透镜的距离也是固定的(pancake 之前),所以双目汇聚和单眼汇聚的信息是缺失的,而这也直接导致了所谓的 VAC 问题。

在真实世界中,人眼的汇聚距离和调节距离应该是一致的(观看远处物体时,眼睛聚焦到远处;观看近处物体时,眼睛聚焦到近处),反映在物理层面则是控制眼球转动的眼部肌肉和控制聚焦的睫状肌同步运动 。但 VR 中,由于像距是固定的,因此无论观看画面中的远处或近处物体,眼睛都只能聚焦到屏幕上,这时,双眼肌肉与睫状肌便不再同步了。

图十二,来自维基百科

一般而言,有两种方式解决 VAC 问题。一种是光场技术, VAC 的本质是由于屏幕不含深度信息,而采用脑补的方式进行模拟,从而导致了眼部肌肉与睫状肌的不协调。

那如果让屏幕发出的光,一开始就不相同(比如画面中的远景发 A 光,近景发 B 光),人眼就可以获得深度信息,问题就得以解决了。另一种方式是通过可变焦距 + 眼动追踪解决(第三部分会详述)。

眼动追踪确定用户的注意焦点,通过可变焦距实时改变焦点处的焦距,进而改变成像距离,使得会聚距离与调节距离保持一致。

目前光场技术还不成熟,而业内已采用的 pancake 方案可以实现多重变焦,有望在第二种方案上实现突破。

三、世界应该如何与我们交互?

以上我们所讨论的仅仅是静态的呈现,而真实世界是动态的,我们每时每刻都在与世界本身交互。因此,尽管静态的 VR 世界已经如此庞大,我们仍然不能停下来,驻足欣赏此刻的成果,更艰难的事情在于从照片到影像的跃升。请继续保持耐心。

1. 空间定位

试想,当我们观察现实世界上,我们会移动,转头,于是我们看到事物的不同角度和大小。当我们靠近,声音变强,画面变大;当我们远离,声音减弱,画面变小;当我们围绕物体,则看到它的侧面。正是诗中所言:横看成岭侧成峰,远近高低各不同。

有一个专业术语,DOF(degrees of freedom),用于衡量人活动的尺度。如果把空间分为 X,Y,Z 轴,则一共可以包括六种移动方式:沿 X、Y、Z 平移;沿 X、Y、Z 旋转。

所谓的 6DOF,其实便是指包含这六种情况的活动类型。

图十三,图片来自网络

VR 空间中,本质上所有的信息都只是投射在眼前两块屏幕上的平面信息,远近、侧面并不存在。所以它其实是模拟用户发生相应活动后的视觉呈现效果,直接投射如人眼。

比如当人靠近某个物体,屏幕画面会放大;转头就能观察整个空间的全景,不是用户真的来到另一片空间,而是算法根据用户的当前活动判断,并进行实时渲染。

目前的算法,主要是以头盔的活动情况为标准,通过 IMU 和追踪摄像头进行空间定位。空间定位是 VR 的核心之一,因此有必要具体阐述。

1)IMU

IMU,全称为 Inertial Measurement Unit,翻译为惯性测量单元,一般指测量物体角速率和加速度的装置。我们经常看到,一个名词 MEMS 与 IMU 伴随出现。

MEMS 全称 Microelectromechanical Systems,翻译为微机电系统传感器,指内部结构在微米级别的传感器。

MEMS 有很多种,比如 MEMS 加速度计、MEMS 陀螺仪。

MEMS 和 IMU 是两个独立的概念,并不存在包含关系,不过两者存在交集。比如上面提到的 MEMS 加速度计 和 MEMS 陀螺仪,既属于 MEMS ,也属于 IMU。

一般而言,IMU 又包含三种传感器:加速度计、陀螺仪和磁力计。

加速度计:一般为三轴加速度计,检测物体在 X、Y、Z 三轴上的加速度,经过积分换算,从而确定位移距离(实际上这样确定位移不太准,加速度计算位移是靠积分换算,本身就有误差,多次积分会导致误差累计,最终的位移距离会出现漂移)。陀螺仪:一般为三轴陀螺仪,检测物体在 X、Y、Z 三轴上的角速度,根据角速度推算物体当前的角度。磁力计:又称电子罗盘,一般为三轴磁力计,检测物体在 X、Y、Z 上的磁分量,计算得到最终的磁向量,经过算法纠偏,最终得到地磁北的方向,从而确定物体的所在方向。

市面上的一些叫法,如六轴陀螺仪,其实是三轴加速度计+三轴陀螺仪;九轴陀螺仪,则是三轴加速度+三轴陀螺仪+三轴磁力计;十轴陀螺仪,是在九轴陀螺仪的基础上再加一个气压传感器,获得海拔高度,从而获得物体的高度。

在 VR 的应用场景中,一般采用九轴陀螺仪,实现 3DOF 的检测(Roll 、Picth、Yaw 三种动作,见图十二)。

但光靠 IMU 无法检测到平移的动作(沿三轴平移),一般还需要辅助摄像头等其他设备。

2)追踪摄像头

这里要谈到技术路径的演变,最早的平移定位,采用的是外部定位方式,直到一体机的风潮愈烈和 SLAM(空间定位算法)的发展,才渐渐转为内部定位。不过在一些要求超高精度的环境下(比如虚拟场馆或动捕),都还是采用外部定位的方法。

技术路径的演变,从 Outside-in 到 Inside-out。

本质的区别,Outside-in 是在外界空间中有一套锚定的装置,构建一个相对坐标系。通过装置与 VR 设备的互动,检测头盔和手柄的当前位置。在由外而内的系统中,多个固定的外部摄像头用于跟踪头戴显示设备的姿势(3D位置和3D方向)。外部摄像头跟踪位于头戴显示设备和控制器(如果有)上的一组参考点。

Inside-out,是依靠光学追踪,在 VR 头盔上安置摄像头,让设备自己检测当前外部环境的变化,再经过 SLAM 算法(Simultaneous localization and mapping)计算出当前的空间位置。

Outside-in

Outside-in 路径中,最有名的有两种技术方向:- Cculus 的 Constellation 红外摄像头定位系统;- HTC 的 Lighthouse 定位;先说 Constellation,Oculus 的头盔和手柄上都布满了红外传感,以固定模式闪烁。

房间中布置了红外摄像机,摄像机以特定频率拍摄头盔和手柄,由此得到一组图片,并得到这些红外的点的特定坐标,由于头盔和手柄的三维模型是已知的,通过 Pnp 求解(可以理解为一种复杂的数学计算)能够得到点的 6 DoF(加上 IMU 后)。

图十四,图片来自 GamesBeat

至于用红外,则因红外波可以规避大部分颜色的影响,不会出现误判。但红外容易被遮挡,所以在空间中要布置多台红外摄像机,才能准确判断三维信息。实际上,Optitrack 和 Zero Latency 用的都是同样的方案,只不过 Zero Latency 用的是可见光,更容易受到颜色等噪声干扰。

主动式红外光( Constellation)主要受到摄像头精度(因为根据图像判断)和光学算法的影响,同时价格昂贵,布置也比较麻烦,在移动浪潮下不太适用了。

另一种则是 Lighthouse 定位,室内安置了两台激光发射器,安放在房间对角,而在头显和手柄上有 70 多个光敏传感器。激光发射器从水平和垂直方向扫射空间,发射器为 0 度时,开始计时,激光到光敏传感器时,光敏传感器记录到达时间。由于发射器的旋转速度是已知的,所以根据时间和转速能够计算光敏传感器相对发射器的角度,一次扫描完成后,就可以进行空间定位。

图十五,图片来自 HTC VIVE LIGHTHOUSE CHAPERONE TRACKING SYSTEM EXPLAINED 视频截图

相比红外,Lighthouse 的方法方便很多,没有那么多光学计算,误差和延时都有所保证,可以达到 20ms 以内。但激光扫描区域一般在 5 * 5 * 2 m 范围内,如果要扩大,需要多个灯塔,这时候多空间的融合又会出现算法问题。为了实现定位,光敏传感器需要区分不同来源的激光,而光塔过多也会相互干扰。

另外,Lighthouse 在安装和成本上仍然要比 inside-out 高,但延时性低,精度高,在需要特别拟真的环境仍然需要这种技术。

Inside-out

Inside-out,主要通过摄像头拍摄周围的画面,通过图像识别判断房间景物的一些特征点,通过与上一次拍摄时的特征点位置进行对比,从而得到特征点的位移。与此同时借助 IMU 得到辅助数据,通过算法得到头显的位移情况。同样,在手柄上存在一些小白点,摄像头也通过捕捉小白点的位移判断手柄的变化情况。

因为是可见光识别,所以房间内得保持一定的亮度,不能关灯。

此外,因为依靠摄像头识别外部的标记点,如果角度识别精读差异 1 度,整个距离可能偏移几厘米,Inside-out 对精度要求十分之高。又由于需要计算图像显示,所以它的延时没有办法像 Lighthouse 一样低。

Inside-out 主要依靠 VGA 摄像头和深度识别摄像头进行 3D 空间定位。VGA 摄像头,配合深度识别摄像头,主要用来做头部空间定位和手势识别。VGA 是指的 VGA 格式的分辨率,640X480 ,黑白。深度识别摄像头,主要用来识别物体的距离(实际上也可以识别骨骼点,但不需要),主要有三种技术:

TOF:原理是传感器发出经调制的近红外光,遇物体后反射,通过计算光线发射和反射时间差或相位差来换算被拍摄物体的距离。单目结构光:该技术将编码的光栅或线光源等投射到被测物上,根据它们产生的畸变来解调出被测物的三维信息。双目结构光:和人眼一样用两个普通摄像头以视差的方式来计算被测物距离。

2. 面部、眼动和手势追踪

有了空间定位,VR 可以实时渲染出对应的画面结果。然而人不止和世界交互,也要和人交互。试想,如果我们想要在虚拟空间中同家人,亲朋好友交流,那么我们势必需要看到他们的神情,这其中最重要的便是面部表情和眼神。

图十六,图片来自 MARK ZUCKERBERG: FIRST INTERVIEW IN THE METAVERSE | LEX FRIDMAN PODCAST 视频截图,图为 ZUCKERBERG 和 FRIDMAN 在 VR 世界中的面部重建

1)面部识别

面部识别主要靠摄像头,放在头显内部,追踪如额头、下巴、脸颊的变化情况,追踪原理和空间定位差别不大。一般可以用在如下的场景下:

面部识别存在的问题是,当戴上头显时,人脸 60% 的地方是被遮住的。Magic Leap 的想法是,虽然有的地方被遮住,但可以根据周围未被遮住的肌肉变化来推测。当然,越多的摄像头还是更有助于捕捉真实表情。

Oculus 在训练面部识别时,用了 9 颗摄像头,只是到了消费级,才用 3 颗摄像头并配合 9 颗摄像头训练出来的算法进行面部追踪。

2)眼动追踪

眼部追踪主要靠眼动追踪摄像头。眼动追踪的原理是利用光摄入瞳孔反射到角膜的原理,测算角膜和瞳孔的距离来判断眼动的情况。VR 的眼部周围有一圈红外光 LED 灯,向眼睛发射红外光,光从瞳孔反射到角膜上,摄像头拍摄图像,判断瞳孔和角膜的位置,从而判断眼动的情况。

眼动追踪带来的益处很多,除了眼神与渲染的人物同步,最熟知的是眼动交互,和手势交互一起可以带来自然的交互体验。另一个重要的好处在于,人类的视力在整个视野中并不均匀。中央凹是视网膜的中心区域,视力最好。

在中央凹区域外,视力逐渐下降到视网膜边缘。这样,实际上画面的渲染只需要关注到视线聚焦处,这样可以降低计算渲染成本。此外,有了眼动追踪后,VR 的瞳距可以根据佩戴者的身份自动调节;在运营层面,可以根据眼睛聚焦情况进行数据分析。

还有一个隐藏的好处,主要是体验层面。VR 中的 3D 成像效果,是通过向每只眼睛显示一个独特的 2D 图像来创造 3D 感觉,其中每个图像的渲染略有不同,以产生双眼视差,从而带来 3D 效果。

但是,用户眼睛和图像之间的距离(也即显示屏与人眼的距离)是固定的,所以实际上会导致眩晕问题,也就是所谓的视觉汇聚调节冲突(VAC)。通过眼动追踪 + 变焦显示器,VAC 可以得到缓解。

变焦显示器使用眼动追踪来主动跟踪眼睛的会聚,并使用具有可变焦距的聚焦元件来匹配眼睛的会聚。至于变焦技术,主要是机械式变焦(电动齿轮,改变镜头和物体、视线焦点的距离)。

3)手势识别

有了面部表情和眼动追踪外,我们还需要手势识别,以进一步与虚拟世界交互,比如拾取、点击,或只是简单的 say hello。手势识别所用的摄像头和空间定义一致,都是 VGA 摄像头,识别原理类似。

手势识别主要的难点在于:一般摄像头的视场角都讲究水平,垂直视场角的高度不够,所以手跑到摄像头的视线范围之外就很难办。而在人类大部分的自然任务中,手都是处于下视野的范围,手势追踪的实际难度会很大。

另外,根据对照实验,采用手势追踪的任务效率,会低于直接用手部控制器的方式,一是因为延时,二是因为纯手势交互缺乏触觉提示和反馈,而人需要后两者以定位操作对象。Apple vision Pro 通过手眼融合的方式,提供了一种视觉反馈,变相弥补了下纯手势交互的问题。

此外,它还配了六颗摄像头(一般是 4 颗),其中两颗专门垂直向下以捕捉下视野的手。

4)全彩透视

如果说空间定位和面部、眼动追踪是与虚拟世界交互。那么 VR 很快有了一个更大的野心:升级成 XR,捕捉现实世界的动态。全彩透视,使用 VST RGB 摄像头,用于捕捉带着 VR 头盔的用户所看到的真实景象。VST 指 vedio see through,RGB 是图片颜色格式。

VST 原先都是黑白的,用来看周围空间,现在成了 MR 的入门券。无心插柳柳成荫,原先是为了让用户能够看到周围的真实空间,以确定活动范围的透视,却悄然一变,变成了与 AR 类似的功能。

不过囿于成本,VST 也没有全部采用全彩。如 Quest pro 用 VST,两颗黑白镜头建场景,一颗 RGB 摄像头用来补色,不过现在也出现了双目的 RGB,体验越来越好。

VST 要注意三点:

清晰度:简言之就是看到的画面要和现实中一模一样。延时性:要低,不然画面和动作不一致,用户会晕。视角偏差:摄像头的位置和人眼的位置不一致,所以画面容易产生视角偏差,长时间使用可能出现视觉伪影,有点像水里折射的情况;所以要提前设置算法矫正。

其实,虽然 VR 推出了全彩透视的功能,但并不意味着 VST 一定要放在一体机上,那样相比于 AR 并没有太大的优势。如果拿 PC 和手机类比 VR 和 AR,VR 是 PC 的延伸,承载的是重活,而 AR 更擅长可移动的小场景。VR 在肉眼可见的未来,很难达到出街的可能,VST 的作用仅仅是家庭活动,例如游戏、音乐、绘画。

图十七,Hauntify Mixed Reality 让鬼出现在家中真实房间

VR 的 VST 中,真实世界的元素更多成为一种背景,增加活动本身的乐趣,但却不是主体。试想,如果 VST 和 VR 主机分离,VST 作为 VR 的配件,可以配置到工厂、医院,通过无线传输实时渲染,那是否能够真正实现数字孪生?而 VR 也将真正闯入工业级的应用。

四、把大象塞进冰箱的最后一步

旅程到这里,其实已经结束了。VR 的核心就是光学方案和空间定位,以及基于此的渲染和定位算法。不过,为了方便读者后续阅读某些拆解报告时,对上述内容外的一些概念不太了解,特在最后一章附上相关的名词解释。

1. 头盔、手柄接近传感器: VR 头盔的接近传感器一般用红外,由一个红外发射管和一个红外接收管组成。红外发射管会发射一调制红外光信号,该信号在遇到障碍物后被反射回来,接收管通过接收该反射信号并根据反射信号的强度来判断障碍物的远近。玻纤: 头盔所用材料,耐热、绝缘、超轻。霍尔芯片: 霍尔IC是将霍尔元件与运算放大器组为一体的产品。霍尔元件一般用在手柄上,用于检测扳机、侧键是否按下;霍尔元件从元件本身获得的电压非常小,因此一般情况下需要配置运算放大器等的放大电路。马达驱动芯片: 马达即电机,控制马达的正转、反转、刹车等,用于控制震动马达。线性马达: 通电的线圈在磁场中受到洛伦兹力作用,带着动子沿固定方向往复运动产生振感,是一种能将电能直接转换成直线运动机械能; 线性马达的振动频率和波形均可编程,能根据使用场景,让马达做出不同方向、时间和强度的振动反馈。X 轴线性马达: 动子沿 X 轴方向移动的马达,可以带来前、后、左、右四个方向的震动感觉(X、Y 轴)。Z 轴线性马达: 动子沿 Z 轴方向移动(x,y,z 轴),带来上、下的震感。

手机上一般配 X 轴,因为手机薄,Z 轴行程短,效果不好;手柄上就不是了,双关齐下;早期还有一种转子马达,利用电磁感应,用电流导致的磁场驱动转子旋转而产生振动。这种方法的问题是延时,缺乏方向性,震动的手感不好。

2. 计算、通信、存储IC: Integrated Circuit 集成电路芯片的简称。集成电路芯片是一种电子元件,是将多个电子元件(如晶体管、电容、电阻等)集成在一起,通过半导体制造工艺制成的电路。集成电路芯片有很多类型,比如存储器芯片、处理器芯片等。CPU: Central Processing Unit ,中央处理单元,主要用于计算机指令的逻辑计算和输入、输出控制。DRAM: Dynamic Random Access Memory,动态随机存取存储器,RAM 的一种,用于数据的临时存储,主要用于存储运行中的程序和数据。LPDDR5: DRAM 的一种,全称Low Power Double Data Rate SDRAM,其中 SDRAM 是 Synchronous Dynamic Random Access Memory 的缩写,表示同步动态随机存取存储器。LPDDR5 的读取速度可以达到 6400MHz,表示内存每秒钟可以进行6400万次数据读写。ROM: Read Only Memory,只读存储器,用于永久保存数据,也即我们一般意义上的内存。闪存 UFS 3.1: Universal Flash Storage, 读写速度可以达到几百MB/s或甚至上千MB/s,一般插 U 盘在电脑上,数据从 U 盘上的读取、写入就看闪存的能力。MCU: Microcontroller Unit, 微控制器单元,集成了处理器核心(CPU)、存储器(RAM)和输入/输出接口等功能。SoC: System on Chip, 系统级芯片,将系统的大部分或全部组件集成在一块芯片上,通常包括处理器、内存、输入/输出接口、模拟电路、数字电路和其他外围设备等。SoC 可以简单理解为 MCU + 特定功能的外设集成。FEM: Front-end Modules,前端模块,主要用于射频信号的发送放大、接收放大、滤波等,用在手柄、头盔(2.4 G、5G 射频)的通信。FPGA: Field Programmable Gate Array,可编程的集成电路,优势是高速、实时处理大量数据,用于对视觉画面、传感器数据等的并行处理。

3. 电源管理钽电容: 电容器,主要用来存储电荷。电压电平芯片: 解决不同电压电平之间兼容性问题的集成电路芯片,电压电平芯片可以将输入信号的电压范围转换为输出信号的电压范围。电平电压芯片将VR头显与计算机或游戏主机之间的信号进行转换,以确保它们能够正常地进行数据传输和通信。稳压芯片: 将输入电压转换为稳定输出电压的集成电路芯片。升压芯片: 将输入电压升高到更高电压的集成电路芯片,升压芯片也有使用运放的方案。运算放大器: Operational Amplifier,简称Op-Amp,可以将微弱的模拟信号放大到适合后续处理的范围,也放大输入之间的电压差;VR 中作为 LED 驱动或者其他驱动的放大器;运放也有用在升压芯片的方案。OTG 扩展供: On-The-Go,USB 2.0 规范的补充,供电是指在使用OTG 功能时,主机设备(比如电脑)为连接的外设(比如 VR 头显)提供电源供应。电源管理芯片: 顾名思义,对电源起到管理作用,具体包括。电源变换:将输入电源的电压和电流转换为适合系统需求的电压和电流。电源分配:将电能分配给不同的系统组件,以满足其功耗需求。电源检测:监测电池电量、充电状态和系统负载等信息,以提供电源管理的智能化控制。其他电能管理功能:如电池保护、温度监测和功率管理等。

五、后记

这应该是我自《张小龙 22 年》后写的最长的文章了,无论是字数还是时间。写长文不容易,记得当时写张小龙的时候,大概花了一个星期,虽然在微信上没发出多久就被腾讯封了,但在 pmcaff 上还有留存(链接放在了参考中),并得到了池建强老师的推荐,也算满意了。

写这篇文章,比写人物要困难多了,太多的专业术语,以及技术理解。原先我以为自己懂了的概念,其实真正串起来,又延伸出许多枝蔓,又一点点去查。

好在有 perplexity 的帮助,简化了我的一些工作量。不过写作的乐趣正在于此,它是一座迷宫,有时只想理解一个概念,又牵扯到另一个概念,概念与概念之间的关系又引发了新的着迷。

有一些很不错的信息源在此过程中也被发现,例如雷锋网的 VR 专题、知乎上胡痴儿的早年回答,以及 B 站 Up 主消失的模因的精彩视频。可惜,前两者已经不再更新了。

当然,最惊喜的是终于发现了一本介绍 VR 全貌的书籍,《The VR Book》,虽然成书于 2016 年,但作者功力深厚,仍然不失为理解 VR 的最佳材料之一。

这篇文章,大概可以 2 个月以来,对 VR 的研究结果,是给自己一个交代。里面一定有诸多问题,受限于自己当前的见识,有所偏颇,但第一步既已踏出,便可以在后续的学习道路上增删改查,可谓是写完后最大的收获了。我想,在消费电子业无聊的状态下,有一件有意思的事物可以研究,便很快慰了。

参考:

人类的视觉增强探索史: 设备发展史: HeadSight 介绍:凸透镜成像原理:了解 AR/VR 的光学原理:视场角真的是越大越好吗?- 大朋工程师的文章 – 知乎 重新认识鱼眼镜头:;vd_source=7cf1f568229c6f5b4a7c23f5a2e85cbcVR沉浸感的奥秘,人眼如何通过双目视差硬解深度信:;vd_source=c7e29439c97151c3755a46ccd4c8160a如何充分利用视觉系统对深度的感知从而营造更强的立体感与深度感?:光场与人眼立体成像机理:维基百科 – Vergence-accommodation conflict:传感器1:3轴加速度计工作原理揭秘,与这些有关:;vd_source=c7e29439c97151c3755a46ccd4c8160a深度解析 HTC Vive 的 Lighthouse 室内定位技术 – 虎嗅网: 激光定位技术开源了,但不是 Valve 做的 | 雷峰网: Vive Lighthouse Chaperone tracking system Explained – YouTube: the Vive Lighthouse Works – YouTube: 突然开源?背后所涉的重磅信息都在这里了 | 爱范儿:目前最强的 VR 定位技术,HTC 和 OptiTrack 是如何做到的?:深度干货:详解基于视觉+惯性传感器的空间定位方法:的空间定位技术是如何实现的?- 知乎:空间定位全解:如何在虚拟世界中行走?:「面部动作捕捉」是一项什么技术?主要应用于哪些场景?- 渲云渲染的回答 – 知乎:【VR速递】OculusQuest面部识别;眼球追踪的研发之路 – 载入圈VR的文章 – 知乎:面部表情追踪技术在 VR 设备中的发展研究: Tracking in Virtual Reality: a Broad Review of Applications and Challenges: is VR Eye Tracking? [And How Does it Work?]: Tracking for Immersive Virtual Reality: Opportunities and Challenges:手势识别功能评测: RGB透视VR研究:摄像头距离可调、分辨率720p:从典型案例看VST MR游戏的设计技巧:红外 ToF 技术将大幅提升接近感应传感器的性能及可靠性:何谓霍尔IC?:转子马达、X轴和Z轴线性马达有啥差别?这篇文章总算说明白了!: mic之Amic(一)_麦克风thdpn是什么不良代码?: 波束成形麦克风阵列技术优化您的会议体验.pdf常用的音频功放芯片-电子工程世界:瑞苏盈科为VR行业提供FPGA核心板解决方案:同创国芯窦祥峰演讲实录:VR的FPGA应用分析::张小龙的 22 年和微信的 8 年:

专栏作家

善宝橘,微信公众号:善宝橘,人人都是产品经理专栏作家,2019年年度作者。南大传播学硕士,崇尚终身学习的互联网斜杠青年,专注新媒体、游戏领域的运营策划。

本文原创发布于人人都是产品经理。未经许可,禁止转载

题图来自 Unsplash,基于CC0协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

标签: #js 3d模型 #visual c 2019安装 #苹果手机隐藏照片怎么设置面容解锁 #c语言中的逻辑或运算是什么意思 #win10聚焦总是那一张图不会切换