关于VR用户体验的构成因素及其对VR晕动症影响关系的深度研究-et04
2.1.7体感反馈
体感,或称躯体感觉,是触觉、压觉、温觉、痛觉和本体感觉(关于肌肉和关节位置和运动、躯体姿势和运动以及面部表情的感觉)的总称。体感是和特殊感觉相对的一个概念。这些不同的体感模式源自不同类型的感受器。在哺乳类,体感的上行神经通路起源自身体不同部位的感受器,途经后柱-内侧丘系通路、脊髓丘脑前束、脊髓皮层前束和脊髓皮质后束,终于大脑皮层后中央回的体感皮层。
体感又可分类为:皮肤感觉、运动感觉和内脏感觉。其中前两种是目前了解得比较清楚的类型。内脏感觉传递关于体腔内部的信息,例如腹痛。
体感技术一般需要借助体感设备如手柄、脚带、感应帽等完成人体动作、表情的捕捉,如最为大众所知的wii游戏。
但是目前也已经有了更尖端的技术,不需要借助设备,只需动手、动脚,即能通过识别器捕捉人体的运动线程,如摩比源公司的“人体动作跟踪及分析技术”(H.E.A.R.T-Human Expression Analysis and Rendering Technology),从普通的网络摄像头直接捕捉人脸部表情及身体动作。这项技术已经应用于IM软件、电脑游戏等。现在的体感技术还处于发展阶段,但是已经广泛应用到了游戏、影视、医疗等方面,随着时代的变迁与科学技术的发展,体感技术的应用领域也必将进一步扩大。
体感反馈,是指在在头戴式VR的应用中,当用户发生模拟真实生活中的体感行为时,用户能够获取到的体感反馈信息。一般来说在常规VR应用中,用户只能感受到了视觉的体验和匹配,但是身体并不会获得相应的体感反馈。以VR发展以来最广泛应用的蛋椅硬件举例,它广泛出现在各大商场和大型商业集散空间里。蛋椅,原本是指设计成鸡蛋形状的可以360度旋转的座椅。在VR产业里,它发源于2014年,兴起于2015和2016年,是由过去4D影院延伸出来的为VR设计的特制座椅。VR 蛋椅可以配合游戏里的画面模拟出一些运动,让坐在上面玩 VR体验 的人感受更真实。蛋椅来源于传统4D电影院里的动感座椅,而有些4D影院还增加了更多的的全感官体验,不仅可以模拟运动,还能模拟气味、触觉、淋水、蒸汽、湿气等。当人们坐在蛋椅上,戴上VR头盔,体验过山车这类游戏的时候,蛋椅配合头显的画面震动,可以给玩家带来极强的真实感。蛋椅的特点在于造价便宜,体验起来比较方便,占地空间较小。而且最关键的是,对于VR头显的性能要求较低,大部分的蛋椅都使用的是国内厂商制造的VR头显。而缺点则是画质比较简陋,可玩性很低,同时玩完之后会有比较明显的晕眩感。
2018年在全球上映的斯皮尔伯格执导的好莱坞科幻大片——玩家一号,可以说是再度点燃了了人们对VR的激情,在影片里也为广大观众描绘了未来的时代,VR所应该具备的体感技术。如:
l 全身触觉套装
影片里玩家除了佩戴VR头显,还需要佩戴专用手套去进行虚拟世界的交互体验,感受虚拟物体带来的触觉,比如在虚拟世界里,你正在一辆车上,手套的作用能够使你清楚的找到在车上的实物感。
l 力反馈动捕手套
这通常是通过带力反馈的动捕手套来完成的,国内类似的产品有诺亦腾推出的Hi5,它结合了 Vive Tracker定位器,加上惯性动捕来实现对用户所有手指动作的完整追踪,腕部还会提供一定的触觉反馈。
在影片里用力反馈背心,玩家们都穿着它,好体验在游戏里被打的感觉。不过 Bug 就是,影片里经常有角色被击飞的情况,结果镜头一切,现实世界里的主角也被往后击飞了一点点,而且是在没有装吊绳的情况下,真不知道力是从哪里来的,背心是做不到这个的,只能解释成影视效果了。
l VR 跑步机
有了头盔和动作捕捉,就能实现用户在虚拟世界里的一个全身 Avatar 了,利用VR 跑步机,也就是影片一开头就有提到一个 VR跑步机品牌——Virtual Omni。电影里的玩家都是可以在虚拟世界里自由走动的,男主戴着头盔,脚下是跑步机。和 Omni 的产品不太一样,但实现的效果是一样的——玩家在现实世界的跑步机上原地踏步,在虚拟世界里则是前进的。影片里IOI公司的另一种VR跑步机,它和 Omni 及 KATVR 的产品类似,甚至后者还要更炫酷一些。这类跑步机的实现方法是:在你的脚下放一口“锅”,鞋底再放个轮子,这样你不管怎么走,都会滑回到锅里。
l 面部情绪识别
影片中VR已经拥有了能够识别玩家脸部情绪动作的设备,通过特殊方式进行捕捉,映射至虚拟化身的脸部。所以,影片角色必须打开特殊的情感抑制应用,才能确保他在现实中的恐慌表情,不被映射至虚拟化身的面容上。而我们目前也已经有在研究开发识别人脸部情绪的平台,将应用到车载装备中以保障司机更好地进行安全驾驶。
终极的VR体验需要整合人类所有体感反馈,再结合VR视觉模拟,输出达到梦境级写实重现的用户体验,令用户完全沉浸在虚拟世界中而不自知。但是距离这个最终目标,还有相当长的技术、产品发展路径要走。在那之前,每一次的VR产品更新迭代与新技术的引用于升级,都在为提升综合VR体验品质增砖添瓦。
主流标准: 能够匹配真实视觉的仿真体感反馈
影响因素: 视觉与体感反馈失调会带来明显认知冲突,从而引起前庭反应导致眩晕感
影响度: 明显
2.1.8焦距
焦距,是光学系统中衡量光的聚集或发散的度量方式,指平行光入射时从透镜光心到光聚集之焦点的距离。具有短焦距的光学系统比长焦距的光学系统有更佳聚集光的能力。简单的说焦距是焦点到面镜的中心点之间的距离。照相机中焦距f<像距<2f 才能成像。
如果你在相机的英文规格书上看过“f =”,那么后面接的数码通常就是它的焦长,即焦距长度。如:“f=8-24mm,38-115mm(35mm equivalent)”,就是指这台相机的焦距长度为8-24mm,同时对角线的视角换算后相当于传统35mm相机的38-115mm焦长。一般而言,35mm相机的标准镜头焦长约是28-70mm,因此如果焦长高于70mm就代表支持望远效果,若是低于28mm就表示有广角拍摄能力。
“可对焦范围”则是焦长的延伸,通常分为一般拍摄距离与近拍距离,相机的一般拍摄距离通常都标示为“从某公分到无限远”,而近阶段设计的产品则往往还会提供近距离拍摄功能(macro),以弥补一般拍摄模式下无法对焦的问题。有些相机就非常强调具有支持1厘米近拍的神奇能力,适合用来拍摄精细的物体。
焦距由于摄影机镜头的光学透镜(lens)而形成。摄影机或放映机的金属筒容纳了一组两边或一边有弧度(凸或凹)的透镜,组成一个综合镜头。从物体不同部分射出的光线,通过镜头之后,聚焦在底片的一个点上,使影像具有清晰的轮廓与真实的质感,这个点就叫焦点(focus)。所谓焦距(focal length),正是从镜头之镜片中间点到光线能清晰聚焦的那一点之间的距离。
当将摄影镜头调整到无限远时,其实是一个有名无实的焦距。在设计上,是将透镜的主平面与底片或成像传感器的距离调整为焦距的长度,然后,远离镜头的影像就能在底片或传感器上形成清晰的影像。当镜头要拍摄比较接近的物体时,是镜头的实际焦距被改变了。焦距通常使用毫米(mm)来标示,但仍然可能看见一些使用厘米(cm)或英吋标示的老镜头。视野的大小取决于镜头的焦距和底片大小的比例。由于最大众化的是35mm规格,镜头的视野经常是根据这种规格标示的。对标准镜头(50mm)、广角镜头(24mm)、望远镜头(500mm)视野都是不一样的。对数码相机上也是一样,它们的感光器比一般传统的35mm底片还要更小,所以相对的只要更短的焦距,就可以得到相同的影像。
而我们人类的眼睛不仅具有自动对焦功能,还有很强大的防抖功能,是如何实现的呢?眼球的一般功能是,光线通过角膜、瞳孔、晶状体、玻璃球,到达视网膜,聚焦在视网膜黄斑附近,在感光细胞的作用下,最终在大脑形成物像。其中,角膜虽然厚度只有0.5-0.57mm(边缘可达1mm),感觉神经丰富,透光性好,相当于手机相机镜头外的蓝宝石镜片,起保护眼的作用。之后是晶状体,在视力中的主要作用是对光线进行折射。视网膜就相当于相机的CMOS。
其中晶状体具有强大的调节功能,可以随着事物远近、光线强暗改变形状,而我们看到物体都是靠光线的反射,距离较近的物体相对能反射更多的光线,较远的光线分散约严重,黑暗的时候光线弱、明亮的时候光线强,因此在看近物、明亮的物体的时候,瞳孔放大进光量大,晶状体变得更突出,使光线聚集到视网膜黄斑。而这种调节是不需要人自行控制的,眼睛适应性变化,光线变化,眼睛就反射性地发生相应变化,靠眼内神经和肌肉的作用适应看不同物体的需要。
人眼的防抖功能也是反射性的,由前庭眼反射负责调节。在大脑中有加速度、速度变化的感受器,可以实时监测头部的加速度,大脑感受到外界变化后,反射性地引起眼球发生相应的变化,保证人看物体的清晰度,避免重影。并且由于人眼黄斑的存在,光线聚集在此结构附近时才能形成清晰的物像,而在其周围,虽然也能产生一定的视力,但却不甚清晰,这就是为什么我们注视一个物体时,其周围的物体会显得比较模糊。
在VR视觉中对于焦距是聚焦在无穷远,而不能像人眼一样对于真正聚焦的地方进行焦点渲染,当同一场景下的所有近、中、远景全部都很清晰,容易给用户带来反差感,导致眩晕。
主流标准: 焦距无穷远、采用眼球追踪和焦点渲染技术模拟人眼聚焦
影响因素: 当同一场景下的所有近、中、远景全部都很清晰,容易给用户带来反差感,导致眩晕
影响度: 一般
2.1.9畸变校正
要实现头戴式VR体验,需要为用户模拟很大的视场角,而VR沉浸感需要大的视场角。这可以通过将一个大的弯曲的球形显示器放到你的面前的方式来实现,但是这样的方案是非常昂贵的。一个更加实惠的解决方案是通过在一个小的矩形的显示屏上增加一个透镜,然后通过透镜来看这个显示屏,从而获得更大的视场角:
透镜靠近你的眼睛能够极大的增加你的视场角,但是这是有代价的:图像会显得扭曲畸变。越大的视场角,就会有越大的图像畸变。这篇文章是对三种不同的图像反畸变处理的介绍,这些方法都已经在WebVR相关的项目中实现了。 这里是一个典型的头带显示器的镜头畸变例子。透过镜头图像产生了”枕型”畸变:
解决方法是对这些畸变的图像使用”桶型”畸变。当我们通过畸变透镜上看,这些图像(注:是指经过”桶型”反畸变处理的图像)看起来就是正常的:
透镜的畸变从数学公式上来看是容易理解的,方程如此所示(注:从代码上看OSVR openVR上所使用的反畸变算法都是采用这个的),特定的透镜对应相应的畸变系数。为了更好的消除畸变,我们还需要计算两只眼睛中心之间的距离,为此需要知道一些关于显示器几何结构以及它们的外壳结构。这些都可以做到,即使是在web上也可总结以下几个可选的实现方案。
1.方案基于片段(bad)
最简单的方法是通过二次渲染。首先,我们渲染左眼和右眼图像到纹理上,然后用片段(像素)着色器处理这个纹理,将每一个像素向内移动到眼睛的中心上。
这是最初的、最简单的方法,也是效率最低的方法,因为每个像素都要被分别处理。WebVR的第一个版本是由Boilerplate实现的。
2.方案基于网格(better)
第二种方案与之前相比,不是采用单独处理每一个像素的方法,我们队相对稀疏的网格的顶点做畸变处理(40x20效果不错)。
这种方案可以减少很多直接计算的资源,让GPU做大量的插值运算。不采用对每一个像素(1920*1080约为2e6)做处理,我们队网格中的每个顶点做计算(40*20 = 800)。结果是极大的减少了计算量(减少了3个数量级),在性能上有不错的提升。WebVR Polyfill现在实现了这个方法。
在这个畸变方法中渲染不是唯一的占用大量资源的部分。一些时间被浪费在用来拷贝整个场景的中间纹理。
3.方案基于顶点位移(best)
这个方案是三种方案中最有效的,首先它不需要渲染中间纹理。在这种方法中,几何结构通过自定义的定点着色器已经产生了畸变。这个方法已知摄像头的位置,我们用已经”桶型”畸变的2D渲染结果代替顶点。在这种方案中,不需要二次渲染,我们可以节省拷贝渲染到纹理的步骤。
这种方法需要在每个已经畸变的网格上有一定的顶点密度。想象一个简单的例子,四个顶点的矩形非常靠近摄像头的渲染情况,畸变这些顶点滞后,仍然是一个4个顶点的扁平的矩形,不会有”桶型”的效果。因此,这些方法的使用通常还需要一些额外的开发工作。
这种方法已经被用于开源的VR View项目的Cardboard Design Lab。基于几何畸变的方法还可能导致图像看起来比较锋利,因为之前的2种方法会导致混叠,尤其是中间纹理很小的时候。
主流标准: 畸变校正SDK
影响因素: 对畸变校正还原的修正结果与用户实际期望不符会导致眩晕感
影响度: 一般
以上内容小计4757字……
下期继续,敬请期待~