第 7 章 ? 虚拟现实简介 ? 7.1 虚拟现实基本概念 虚拟现实,英文Virtual Reality,简称VR,是利用计算机系统生成一个模拟环境,提供使用者关于视觉、听觉、触觉等感官的模拟,让使用者如同身历其境一般,可以及时、没有限制地观察模拟环境内的事物。 全景照片、全景视频和全景漫游是否算VR?这个还是有一些争论。不过,一般技术人员默认的VR不包括上述三种,而是专指由计算机3D模型生成虚拟环境的这种情况。 7.2 常见的几种VR硬件 1. 眼镜盒 以google cardboard为代表,单纯的头戴式的VR设备。最常见的是将手机插入眼镜盒,利用手机屏幕播放内容,并提供运算。区别更多的只是盒子是纸做的还是塑料做的,戴着是否舒服。早期的Oculus也是这类,虽然是利用计算机运算,但是也只有一个眼镜盒,如图7-1所示。 图7-1 优点是简单、方便、便宜;缺点是手机运算功能有限,操作方式受限。例如,点击按钮的操作,在这类设备里面只能靠瞄准点盯住按钮,计时之后自动点击,如图7-2所示。 图7-2 Google cardboard、三星的Gear VR(如图7-3所示)、早期的暴风魔镜等都属于这类。 图7-3 2. 加控制器的眼镜盒 这一类可以认为是之前的眼镜盒的升级版。在单纯的头戴式的VR设备上添加了简单的控制器。例如有添加手柄的暴风魔镜、有语音控制的富士通VR眼镜等,如图7-4所示。 图7-4 比纯粹的眼镜盒,这类设备操作更方便,体验感也更好。国内的很多VR眼镜都是这一类的。 3. 带定位的VR设备 以HTC Vive为代表的,带有位置定位的VR设备。这类设备可以准确定位头盔以及手柄的位置方向,并且能够感知使用者的移动,这让使用者的沉浸度更高,能更好地进入到虚拟环境中进行体验,如图7-5所示。 图7-5 优点是体验感非常好,可以有更多的操作和交互的方式。缺点是使用者仍然被局限在一个很小的范围里,设备价格很高。 HTC的vive、Sony的PS VR、Oculus Rift CV1都属于这类。 7.3 HTC Vive介绍 HTC Vive是由HTC与Valve联合开发的一款虚拟现实头戴式显示器产品,于2015年3月发布。由于有Valve的SteamVR提供的技术支持,因此HTC Vive可以通过Steam平台下载,是可以在Vive上使用的VR游戏和应用软件,如图7-6所示。 图7-6 HTC Vive采用的定位技术是激光扫描定位,有两个传感器。设备安装的时候,要求玩家设置活动空间的大小,最大支持约3×4米的空间,同时,设备会要求玩家设置地面位置。当玩家在游戏中要靠近设置空间的时候,会显示边框提醒玩家避免受伤。 HTC Vive 搭载的是 2160×1200 OLED 屏幕,刷新率 90Hz。因此对电脑的配置要求也略高。官方推荐配置是i5处理器,4G以上内存,970以上显卡。也就是说,要一块¥1500以上的显卡才能带动。 HTC Vive是基于电脑主机的VR设备,所以,在Unity3D发布的时候,按照Windows程序发布即可。 7.4 HTC Vive 的手柄 目前在Steam平台上已经可以体验利用Vive功能的虚拟现实游戏。 手柄两个一对,分左右,开发的时候也是分左右的。每个上面有一个pad和4个按钮,如图7-7、图7-8所示。 ? 开关、系统菜单按钮:只有这个按钮不可以编程(默认),用来打开手柄,其实没用关的功能。在游戏中按下该按钮是调出系统默认的菜单,用来关闭,切换游戏用的。 ? menu按钮:默认用来打开游戏菜单。 ? grip按钮:用的最少的按钮,每个手柄上虽然有两个,但是功能相同。 ? trigger按钮:扳机按钮,用得最多,可以有力度。 ? pad:触摸屏+鼠标的功能,可触摸,可点击。 图7-7 图7-8 本章后面两章介绍的两种开发方法各有特点,Input Utility插件开发简单,但是功能相对单一,没有手柄提示。InteractionSystem开发略显复杂,但是提供了另外一些有用的功能,大家根据自己的情况选择吧。 7.5 Vive上的VR应用介绍 1. Audioshield 这是一款VR音乐游戏,随着音乐节拍,会用红色、蓝色、紫色的球向玩家飞来,玩家需要用手上对应颜色的“盾”把球挡住。它可以当成是打鼓机的VR版,还算有趣,如图7-9所示。 图7-9 2. Destinations 这应该算是一个VR社交应用,用户可以选择一些虚拟或现实的场景,可以独自在场景里逛荡,也可以把这个场景变成一个聊天室,让好友们用各自的虚拟形象出现在场景中聊天。尽管,作者从来没在场景里见到其他人,如图7-10、图7-11所示。 图7-10 图7-11 3. PaintLab 这是在VR中,在三维空间作画(或者雕塑)的应用。玩家用手柄可以在空间中喷出各种颜色、不同粗细的东西。虽然大家看到这个一开始觉得很有趣,但是,很快就发现多数人是没有能力在三维空间制作出一个漂亮的东西的,不管是画还是只写个字,如图7-12所示。 图7-12 4. theBlue 这是一个做得非常逼真的海底体验场景,让玩家有置身海底的感觉。过程中,还可以用手柄触碰周围的一些生物,如海葵,珊瑚鱼等,这些被触碰到的生物也会做出对应的反应。非常真实的体验感,但是不能在水里游来游去很遗憾,如图7-13、图7-14所示。 图7-13 图7-14 5. TheLab中的射箭塔防 这是一个塔防的游戏。游戏开始后,黑色的纸片人会攻打玩家的城门,而玩家在城墙上用弓箭射杀纸片人来保卫城堡。这个游戏虽然简单,但是很受欢迎。在VR游戏中,虽然舞刀弄枪很容易,但是对于冷兵器而言,弓箭最安全。在玩家无法看到周围情况的时候,非常投入的游戏者大幅度挥舞手臂实在是一件危险的事情,如图7-15所示。 图7-15 7.6 基于Vive的VR开发常见的几个问题 1. 模型比例 在常规的3D内容开发中,模型只要是相互之间的比例没问题,大小并不重要。但是在Vive的开发中,因为视角高度是和真实世界一致的,模型比例就很重要。 例如之前开发的时候,3D模型师习惯性地把玩家的视角定到2米,为了方便画贴图,将其中一个场景的物体做得很大。在普通屏幕显示的时候并没什么异样,但是戴上Vive设备后,立即就感觉到不同了。所有NPC都比玩家高很多,需要仰视,而那个物体特别大的场景,进去后就像是到了巨人王国,所有东西都大得出奇,比人还高的小草在风中摇摆。 所以在做Vive开发的时候,模型一定要按照真实物体1:1的比例制作,除非内容确实是进入巨人国或者小人国。 2. 特效 很多特效,模糊、烟雾等在普通电脑屏幕上看的时候还行,可是在戴上Vive设备后,因为沉浸度加强,原本感觉还行的特效就变得很差。在VR开发的时候,对特效的要求要高于普通3D内容开发。 3. 眩晕感 眩晕感是VR开发里面最麻烦的一个问题。 据说问题的产生是这样的,人体也有加速度计和陀螺仪。当在VR设备里,玩家快速移动的时候,眼睛发给大脑的信息是玩家自己在快速移动而不是玩家看见屏幕里的虚拟玩家在快速移动,与此同时,身体发给大脑的信息是玩家自己没有运动。当大脑收到两条完全背离的信息的时候,大脑做出的判断是,玩家有病,躺下,于是就产生了眩晕感。 在Vive的开发中,小范围的移动是靠玩家自己走动。远距离的位置变化官方推荐的是用传送的方法,以避免产生眩晕。 如果,必须让玩家远距离地移动,一方面是速度尽量放慢,还有就是可以通过缩小视野范围的方法来减少眩晕感。 另外,避免让玩家做低头等容易使传感器丢失的动作,也可以防止因为画面的突然变化产生的眩晕感。