您当前的位置:首页 VR开发 Unity 正文

Unity for Oculus 开发指南之一

查看: 6366| 评论: 0 2016-1-3 10:43 PM| 发布者: administrator |原作者: 夜行的猫仔


Introduction简介

欢迎来到OculusUnity开发者指南。

本文档描述了如何在使用Oculus PC及移动端SDKVR设备开发U3d游戏及应用。我们提供了Unity整合包、Unity应用实例,以及移动SDK Unity实例来为PC及移动端开发工作提供帮助,帮助你在Unity中创造VR应用。

本指南包括的内容有:
• 如何开始
• 下载并安装OculusUnity整合包
• 整合包中的内容
• 如何使用当中的实例、组件以及实例应用
• 怎样对应多平台的生成方式

本次的Unity整合包可以用来在PC上针对OculusRift的开发环境下使用,同时也可以随着三星Gear VR的移动SDK一起使用。另外整合包可以同时应对PC和安卓的两种生成方式。不过需要注意的是,PC与移动VR应用在需求以及优化上是存在本质区别的。如果你想让一个单独的项目同时生成在PC端和安卓端上,那么必须注意遵循更加严格的移动开发最佳实践(best practices)。
本文档描述了移动Unity整合包,版本0.4.3。本指南中包含的绝大多数信息也可以同时运用在PC Unity整合包里.4.4。如有不同之处一般都会当场指出(比如说OVR里的Moonlight文件夹里包含的组件只和移动开发有关)

需求
系统和硬件需求

请参阅相关文档以确保你使用的是受支持的硬件设备,同时确保你的开发环境及硬件都已经经过了正确的调试和安装:
• PCSDK: OculusDeveloper Guide
• 移动端SDK: Deviceand Environment Setup Guide
在开始Unity开发工作之前,你应该可以先运行一下手头已经拥有了的SDK Unity Demo应用。

UnityRequirements Unity需求

整合包可以由Unity Pro 4.6.1进行编译,因为其也包含了对Lollipop棒棒糖(安卓5.0)的支持。

注意:对于移动端的生成,我们强烈建议使用Unity 4.6.2.p2或者更高的版本,因为会对内存溢出或者空引用BUG的情况作出重要修正。

Unity4.6或更高版本提供了Unity免费版的支持。Pro版和免费版的功能有哪些区别可以参考文档http://unity3d.com/unity/licenses
注意:对于Unity许可证书之间对功能支持的区别,其中有某些地方值得一看。请在安排工作之前参阅下列Unity网址中的限制条件以及许可证书中的区别。对许可证类型的选择在很大程度上依赖于你的应用的表现形式和分布需求。

游戏控制器
你也许会需要有一个可供编译的游戏手柄在受支持的Demo应用当中,比如对应windowsXbox 360手柄,对应MacHID-compliant游戏手柄或者一部三星 EI-GP20或其他对应Gear VR的其他可编译控制器。

Installation安装

所有的OculusUnity开发所需材料都可以在我们的开发者平台上下载到(需要登录)https://developer.oculus.com/downloads/

Oculus Unity整合包是整个开发资源中的核心——它会在最低限度上为你安装所有必要的用以开发VR的文件。我们同样在里面放入了多种组件、脚本以及应用实例来辅助开发过程。

移动SDK同样包含了Unity实例资源代码来说明各种结构以及大部分资源的使用方法比如simpleRoomsMenus等等。它们可以在文件夹SDKExamples里找到。参阅Oculus MobileSDKExamples 以获得更多信息。
The PC Unity Integration bundle includes PC Unity整合包捆绑内容有:
• OculusUnityIntegrationOculus Unity 整合包
The mobile SDK includes the following移动SDK包含有:
• OculusUnityIntegrationOculus Unity 整合包
• BlockSplosion sample application (source and pre-built apk) 应用实例 (资源以及预生成apk)
• Shadowgun sample application (pre-built-apk) 应用实例 (预生成apk)
• SDKExamples (source) (资源)

PC SDK准备工作:PC SDK

当在PC上做开发时,我们推荐先从OculusDeveloper Guide Oculus Best Practices Guide两部文档开始,因为它们包含了如何开发牛逼VR体验项目的信息和指导,而且当你准备好要设计一个Oculus作品时也可以将它们作为一个直观的参考。
Direct Mode Display Driver直观显示模式驱动

windows上,Oculus推荐用户安装上Oculus Display Driver,其中有个功能叫做Direct Display Mode(直观显示模式)。在直接模式里,驱动程序会将你的Rift设置为取代Windows标准屏幕的显示器。应用程序在读取驱动之后会直接标记Rift并在初始化之前先行把渲染工作做好。这是一种默认的行为模式。为了考虑兼容性,Rfit也能作为windows的显示屏来使用。

这被称为扩展显示模式。当扩展模式是激活的,渲染就照常工作不用人为干预。你可以选择应用程序的屏幕显示模式。
目前windows之外的平台还不提供直观模式的驱动程序。
Monitor Setup显示器设置
为了能得到最好的体验,最好总是将Rift调试到最佳状态。

win7win8里,你可以直接更改windows的显示设置,右键点桌面选个性化即可。

• 可以把图像克隆到不同的屏幕上。但为了确保每个屏幕都使用了正确的频率,Oculus推荐最好还是扩展桌面而不是简单复制。

• 如果你是在扩展模式下使用Rift,那么最好将它设置为原生分辨率。对于DK2来说是1920x1080,对DK1来说就是1280x800

Mac系统里打开系统设置,定位到显示菜单。

• windows里可以直接把图像镜像到所有屏幕上。但Oculus推荐还是不要镜像。点击Arrangement并确保Mirror Displays没有启用。

• 有些Unity应用只会在主要屏幕上显示。在Arrangement界面,拖动白条把Rift的蓝色盒子设置为主屏幕。

• 常态保持Rift为原生分辨率和频率。点击GatherWindows。对DK2来说,分辨率应该调Scaled1080p,旋转角(rotation)应该是90°而刷新率应该是75Hz。对DK1来说,分辨率应该是1280x800,旋转角设置为标准,刷新率应该是60Hz
Recommended Configuration推荐配置
我们推荐项目工程采用如下配置:

• windows上,启用Direct3D 11D3D 11Open GL能最大限度展现VR的渲染能力。在某些情况下,用D3D 9可能会导致画质或表现的轻微下降。

• 使用线性的颜色空间(linear color space)。线性光并不仅仅正确作用于着色(shading),它还可以让Unity在肉眼材质上展现sRGB的读/写。这一点可以帮助VR在渲染失真时降低混淆程度,尤其是在肉眼材质被轻微的大动态范围(slightly greater dynamic range)改动时。

• 不要复制屏幕。当Rift被克隆到另一块屏幕时,应用程序可能没办法完美同步。
很有可能导致视界撕裂或者抖动(断断续续或者运动震动)。

• windows上保持运行DirectToRift.exe。哪怕在扩展模式中,DirectToRift.exe也能让你的应用程序在Rift上保持全屏。

• 在使用Unity编辑器时,使用扩展屏幕模式。直观模式目前仅支持单一玩家。用Unity编辑器打开它有可能会导致Rift上的黑屏。

准备开发:移动SDK

当针对移动端进行开发时,请先保证完全浏览过所有相关的表现和设计文档,特别是Mobile Unity Best Practices guide.移动应用意味着要一直考虑更严格的限制和需求以及从头到尾都要一直考虑的计算限制。

我们希望把你的Oculus硬件整合进Unity环境里的过程能变得有趣和轻松。

后续教程:

52VR.COM微信扫一扫
52vr公众号
专注于VR的学习、开发和人才交流

52VR开发交流

相关推荐

已有 0 人参与

发表评论

您需要登录才可以回帖 登录 | 立即注册

手机版|VR开发网 ( 津ICP备18009691号 ) 统计 网安备12019202000257

GMT+8, 2020-10-21 11:18 PM

返回顶部