1.4 主流的虚拟现实开发工具
在了解了虚拟现实的基本概念、主要技术以及主流的虚拟现实设备后,接下来我们认识一下主流的虚拟现实开发工具,从而为进入VR/AR实战开发做好准备。
1.4.1 虚拟现实开发平台简介
虽然虚拟现实最近几年才开始火爆,但实际上这项技术已经有几十年的发展历史。在此期间,很多优秀的开发平台和引擎不断涌现。但随着时间的推移,许多优秀平台逐渐消失,因此这里只提及目前仍然被人们使用的开发平台。
(1)Quest3D
Quest3D是由Act-3D公司开发的实时3D构建工具。比起其他可视化构建工具,如网页、动画、图形编辑工具来说,Quest3D能实现在实时编辑环境中与操作者互动。
(2)VR-Platform
VR-Platform(Virtual Reality Platform,VRP)即虚拟现实仿真平台,是一款由中视典数字科技有限公司独立开发的、具有完全自主知识产权的、直接面向三维美工的一款虚拟现实软件。该软件适用性强、操作简单、功能强大、高度可视化。
VR-Platform中所有的操作都以美工可以理解的方式进行,不需要程序员参与。如果操作者有良好的3D Max建模和渲染基础,只要对VR-Platform平台稍加学习就可以很快制作出自己想要的虚拟现实场景。
(3)Unity3D
Unity3D具有简单易上手、丰富的游戏资源素材和对多款VR/AR/MR设备友好支持的特性,这使其在无数优秀虚拟现实开发平台中成为当之无愧的首选工具。
(4)Unreal Engine
Unreal Engine(以下简称UE)是由Epic Games开发的一款商用游戏引擎。它通过虚幻引擎,使开发出的游戏画面表现力惊人。它的所有开发源代码均在GitHub上开放。虽然虚幻引擎上手相对较难,但出色的画质表现仍然让它成为很多虚拟现实游戏和应用开发者喜爱的工具。
在2020年6月的PS5发布会上,Sony展示了使用虚幻引擎UE5开发的游戏示例版本,通过革命性的技术Nanite、Lumen和Niagara让开发者制作出场面更加宏大、视觉效果更为逼真的游戏场景。
1.4.2 第三方工具和SDK
1. Leap Motion
Leap Motion的控制器中有两个单色红外线摄像机和三个红外线LED。它能检测1米以内弧形范围的对象。其中,LED灯主要负责生成红外线,摄像机则以每秒300帧的画面抓捕返回来的光线,然后把信号通过USB接口传给电脑进行分析,最后比较两个摄像机生成的2D画面的距离差,从而生成即时的手部3D动作信号。图1-8展示了如何使用Leap Motion实现手部动作识别。
图1-8 Leap Motion手部动作识别
目前,市面上可能只有Leap Motion可以做到如此低成本且精准的光学手部探测。它非常适合要求手部动作精准的应用场景,劣势是相比Kinect之类的全身探测而言,应用范围相对狭窄。
Leap Motion提供了一套名为ORIEN的SDK,可以配合Oculus Rift和HTC VIVE进行开发。
2. Intel Realsense
Intel Realsense是Intel推出的所谓“实感”技术,可以将手部/手指运动跟踪、面部表情识别与分析、3D扫描、语音识别、增强现实、背景分段等功能集成到我们所开发的VR/AR应用中。
Intel Realsense开发套件包含Intel实感摄像头、相关的固件更新、SDK,并提供对Unity的开发支持。
Intel实感摄像头分为两种,分别是用于近距离拍摄的精度较高的前置3D摄像头和用于较远距离拍摄的精度稍低的后置3D摄像头。
前置3D摄像头的原理和Kinect类似,都是基于结构光实现的,如图1-9所示。
图1-9 用于近距离拍摄的实感前置3D摄像头
后置3D摄像头则使用主动立体成像原理,模仿人眼的视差原理,计算出3D图像中的深度信息,如图1-10所示。
图1-10 用于远距离拍摄的实感后置3D摄像头
目前,Intel Realsense支持面向Windows操作系统和Android系统的应用的开发。感兴趣的读者可以到Intel Realsense官网了解更详细的信息,地址为https://software.intel.com/zh-cn/intel-realsense-sdk/download。
3. 常见的AR SDK
Vuforia是如今最为流行的跨平台AR SDK之一,服务于超过25万人的注册开发者,形成了全球最大规模的AR生态系统。Vuforia SDK支持iOS和Android的原生开发,也支持Unity开发。
除了Vuforia之外,还有其他一些优秀的跨平台AR SDK,比如Wikitude、Kudan、EasyAR、HiAR等。
ARKit是苹果在WWDC 2017上推出的针对iOS 11平台的AR SDK,它让苹果一夜之间成为全球最大的AR设备厂商。
ARCore则是Google在2017年推出的面向Android平台的AR SDK。