《Unity虚拟现实开发实战》——第1章,第3.1节虚拟现实设备集成的软件

简介:

本节书摘来自华章出版社《Unity虚拟现实开发实战》一书中的第3章,第3.1节虚拟现实设备集成的软件,作者[美] 乔纳森·林诺维斯,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

**第3章
虚拟现实的构建和运行**
很好,非常酷,但是我的虚拟现实在哪里?我要我的虚拟现实!
别急,孩子,马上就有。
本章中,我们将建立一个可以构建并运行于虚拟现实头盔显示器之中的项目,然后会详细讨论虚拟现实硬件技术的运行原理,将涉及下列话题:
虚拟现实设备集成软件的范围。
为虚拟现实设备安装和构建一个项目。
用于虚拟现实技术运行原理的细节和定义术语。
本书中的项目不需要按顺序实现,可以自由地跳章阅读,因为后一章并不依赖于前一章。然而本章例外,请在阅读余下章节之前先实现MeMyselfEye预制件和Clicker类。

3.1虚拟现实设备集成的软件
在深入讨论之前,我们先了解几种将我们的Unity项目集成进虚拟现实设备的方式。一般来说,Unity项目必须包含一个摄像机对象,用于渲染两套立体视图,在虚拟现实头盔中为眼睛提供视图。
用于虚拟现实硬件中集成程序的软件范围很广,从内置的支持软件和设备特有的接口到不依赖于设备和平台的软件。

3.1.1Unity对虚拟现实的内置支持
Unity 从5.1开始,已经内置了对虚拟现实头盔的支持。写本书之时,它已经可以直接支持Oculus Rift和三星的Gear VR(由Oculus的软件驱动),对其他设备的支持也已经宣布了,其中包括索尼的PlayStation Morpheus。你可以使用标准的摄像机组件,比如附加到Main Camera的和标准的人物角色资源预制件。当你构建的项目在Player Settings中开启Virtual Reality Supported时,Unity会将立体摄像机视图渲染并运行于头盔显示器上。

3.1.2设备特有的SDK
如果Unity没有直接支持某款设备,这个设备商将有可能发布一个Unity插件包。使用设备特有接口的一个好处是可以直接利用下层硬件的特性。
例如,Steam Valve和Google就为Vive和Cardboard提供了设备特有的SDK和Unity包。如果你正在使用上述的其中一款设备,那么你很可能需要使用它的SDK和Unity包。(写本书之时,这些设备未被Unity内置的虚拟现实支持。)而对于Oculus,Unity 5.1中直接支持,提供了SDK工具包以调用其接口。
设备特有的软件锁定其只能构建到指定的设备上,如果这对你来说是个问题,那么你要么写点聪明的代码,要么用接下来几条途径替代。

3.1.3开源虚拟现实项目
2015年1月,雷蛇有限公司(Razer Inc)领导一些行业领袖宣布了开源虚拟现实(OSVR)平台更多内容请参见http://www.osvr.com/),计划开发开源的硬件和软件,其中包括来自于不同厂商而可运行于多种设备的SDK。这个开源中间件项目提供了不依赖于设备的SDK(和Unity包),这样一来你就可以在代码中使用一个接口而不用去关心用户使用什么设备了。
使用OSVR可以为特定的操作系统(比如Windows、Mac和Linux)构建Unity游戏,并且可以让用户根据其使用的硬件来配置(下载之后的)应用程序。写本书之时,此项目还处于其早期阶段,快速发展中且尚不适用于本书,但是我鼓励你关注它的发展。

3.1.4WebVR
WebVR是一个JavaScript API,正在被集成进主流的网页浏览器。就像WebGL(用于Web的2D和3D图形API)对虚拟现实渲染和硬件的支持。现在Unity 5 已经引入了对WebGL的构建支持,我相信WebVR的支持也会随之而来,不是Unity就是第三方开发者。
我们知道,浏览器几乎运行于任何平台。所以,如果你的游戏的目标平台是WebVR,那么你不需要关心用户的操作系统,更不必关心用户使用的是什么虚拟现实硬件了!总之,就是这个意思。新的技术,比如即将到来的WebAssembly,是一种新的用于Web平台上的二进制格式,能够帮助获取你的硬件的最佳性能,并且能够让基于Web的虚拟现实可行。

3.1.53D世界
有一些第三方的3D世界平台提供多用户在共享虚拟空间中的社交体验,你可以与其他玩家聊天,通过入口(portals)在不同房间中移动,甚至不需要成为专家就可以构建复杂的交互和游戏。
举个例子来说,VRChat让你可以在Unity中开发3D空间和虚拟角色,用VRChat的SDK导出,然后加载进VRChat,其他人就可以在社交虚拟现实体验中通过互联网分享实时。我们将在第10章继续探究。

相关文章
|
4月前
|
监控 测试技术 持续交付
自动化测试和持续集成/交付:提升软件质量和效率的关键
在当今快节奏的软件开发环境中,自动化测试和持续集成/交付已经成为了必不可少的工具和流程。通过自动化测试,开发团队可以更快地检测和修复缺陷,同时提高测试覆盖率和质量。而持续集成/交付则可以让开发者将代码快速、自动地构建、测试和部署到生产环境中。这篇文章将探讨自动化测试和持续集成/交付的优势和实现方式,以及如何在实践中有效地使用它们来提升软件质量和效率。
|
3月前
|
监控 测试技术 API
自动化测试工具与电脑桌面监控软件的集成:Selenium与Python的无缝整合
在当今数字化时代,软件质量保证是每个软件开发团队都必须面对的重要挑战之一。自动化测试工具和电脑桌面监控软件的结合,为开发团队提供了一种有效的方式来确保软件的稳定性和性能。本文将介绍如何利用Python编程语言中的Selenium库,与桌面监控软件进行无缝整合,以实现对应用程序的自动化测试和桌面监控。
203 5
|
3月前
|
监控 Java 持续交付
内部网络监控软件的Groovy应用:持续集成与部署的自动化监控
在当今高度数字化的环境中,对于内部网络的监控变得至关重要。为了保证系统的稳定性和安全性,监控软件的自动化变得越来越必要。本文将介绍如何利用Groovy编程语言实现持续集成与部署的自动化内部网络监控软件,并通过代码示例展示其实现方式。
269 3
|
3月前
|
搜索推荐 物联网 数据安全/隐私保护
智能家电设备连接语音助手集成
智能家电设备连接语音助手集成
55 1
|
3月前
|
测试技术 API 数据格式
5、软件产品集成过程——所有表集合
5、软件产品集成过程——所有表集合
20 0
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
iOS设备功能和框架: 什么是 Core ML?如何在应用中集成机器学习模型?
iOS设备功能和框架: 什么是 Core ML?如何在应用中集成机器学习模型?
29 0
|
6月前
|
监控 测试技术 持续交付
持续集成与持续交付(CI/CD):探讨在云计算中实现快速软件交付的最佳实践
蓝绿部署和灰度发布: 使用蓝绿部署和灰度发布等策略,逐步将新版本应用程序引入生产环境,降低风险。
|
6月前
|
存储 机器学习/深度学习 数据挖掘
时序数据库 TDengine 与高级分析软件 Seeq 集成,来看看操作手册
通过 TDengine Java connector,Seeq 可以轻松支持查询 TDengine 提供的时序数据,并提供数据展现、分析、预测等功能。本文将对此进行介绍。
272 2
|
8月前
|
测试技术 Linux C语言
分享一个自己量产项目上的集成测试软件MTTEST
分享一个自己量产项目上的集成测试软件MTTEST
64 1
|
10月前
|
存储 Java Linux
SpringBoot集成海康网络设备SDK
概述 设备网络SDK是基于设备私有网络通信协议开发的,为嵌入式网络硬盘录像机、NVR、网络摄像机、网络球机、视频服务器、解码器、报警主机、网络存储等产品服务的配套模块,用于远程访问和控制设备软件的二次开发。 功能 图像预览, 文件回放和下载, 云台控制, 布防/撤防, 语音对讲, 日志管理, 解码卡, 远程升级, 远程重启/关闭, 格式化硬盘, 参数配置(系统配置, 通道配置, 串口配置, 报警配置, 用户配置), 多路解码器, 智能设备功能和获取设备能力集等。
699 0