在 Oculus和 Gear VR上开发跨平台的 VR应用

本文章由cartzhang编写,转载请注明出处。 所有权利保留。

文章链接:http://blog.csdn.net/cartzhang/article/details/51433994

作者:cartzhang

说明:本文同步发于蛮牛论坛。http://www.manew.com/thread-89068-1-1.html?_dsign=09548ffa

**

我花了两个月时间开发了一款针对PC(Oculus头盔)和移动端(三星GearVR)的虚拟现实应用。使

用unity5版本,OculusPC(0.5.0.1-beta)和移动端(0.5.1)的SDK。下面是一些经验总结,以飨来者!

OculusPC和移动端SDK可以一起使用

在Unity中,可同时使用这两个SDK。移动端SDK在OVR>Moonlight 下(有趣的是:对GearVR工程来说Moonlight项目是内置的代码名)他们分享了很多资源,包括OVRCamera预制体。

比如说,若在场景中使用了OVRCameraRig,在PC或移动端都适用,不需要额外的工作来做。就是这么神奇。

设置单独的Unity工程文件夹

Unity存储特定平台的数据,像压缩的纹理在/Library中。Unity的纹理压缩是一个慢的,单线程处理。大纹理比如光照贴图需要花很长时间来压缩,且可能会导致Untiy挂机。

更糟糕的是,unity5并不为每个平台单独存放数据。当在构建设置中转换平台时,Unity为新平台重写平台相关数据。每次从PC切换到安卓构建,Unity都必须重新压缩每张纹理。这是一个超级低效的工作流程。

解决方案很简单:为每个目标平台创建单独的工程文件夹,/MyVRApp-PC和/MyVRApp-android,但是两个文件夹可以共享资源。你的/Assets 和/ProjectSettings同样针对每个平台。把它们放在同一个文件夹内,在 /MyVRApp-PC/中使用软链接共享接入到安卓文件夹。这样就不需要拷贝资源,但是两个项目都可以共享资源。假设在你的Mac上有这个文件夹叫做/MyVRApp-PC ,步骤如下:

mkdir MyVRApp-Android
 cd MyVRApp-Android
 ln -s ../MyVRApp-PC/AssetsAssets
 ln -s ../MyVRApp-PC

在Windows上,指令类似:

mklink /j Assets..\MyVRApp-PC\Assets
mklink /j PlatformSettings..\MyVRApp-PC\Asset

现在,两个文件夹唯一不同之处就是Unity用来储存平台相关信息的Libray文件夹里。为测试不同平台,只需切换工程,而不是切换构建设置。

高画质光照

不像PC平台,实时光照-尤其是动态阴影-对GearVR来说太耗费性能了。一定要用光照烘培。若 遵照OculusMobileSDK接入说明,将OculusPlayersettings文件夹拷贝到Unity项目中,就带有了Oculus针对安卓系统的缺省画质设置。缺省的是没有阴影的。在目标为安卓平台时,要烘培光照,效果很差的。切换到PC平台来烘培光照,在烘培之前,确保画质设置;应该打开硬阴影和软阴影,且设置阴影质量到非常高分辨率(VeryHighResolution)。

当在PC和GearVR上建议都使用前向渲染,若你临时切换到延迟光照时会得到较好的结果。场景中的每个光照都作为逐像素点光照渲染,而在前向渲染的大多数光照是顶点渲染。逐像素光照是一种高要求,会产生基于像素效果像法线贴图和阴影。

然而,这是个计算密集型的过程,且应该避免实时使用(甚至是PC上)。在烘培过程中使用延迟光照,并且在搞定后切换回安卓项目。当切换回来后,Unity将重新压缩新的烘培贴图;这会消耗一些时间。

快速测试构建

我发现在测试构建中几个痛点。在PC上,在编辑器模式下很难测试一个VR应用。在Unity5.0.1f1中,没有办法测试Direct-to-Rift 模式。必须编译打包,然后外部测试。这是一个低效的地方。

你可以在编辑器中使用单屏或分别调试相机,但是这非常不便且容易误导。一个解决方案就是使用头盔的扩展模式,然后移动游戏窗口到那块扩展屏幕上。需要注意到是:在Unity5.1发布版本中将会得到缓解(当前在Unity Pro的beta版本中测试),直接将Oculus Rift集成到编辑器中。

另外, SteamVRUnityplugin插件可以让你直接在编辑器中测试头盔,多亏了Valve的分层合成的方法。相关推荐阅读一下JoshMcCormick博客中的合成器细节分析。

对GearVR,我安装了ADB来部署无线构建。对无线构建的说明可以在MattRatcliffe’sexcellentblogpostonGearVRdevelopment找到。然而,大的项目最后还是使用USB来部署。甚至大小100M的APK包只需要几分钟就可以通过WiFI来更新到设备上了。

GearVR上的分析

在PC上的性能优化很简洁明了——只需监测构建设置中的“autoconnect profiler”。而GearVR接管了手机USB口,且在运行应用时不能直接物理连接到设备上。

而是要设置和无线链接ADB。虽然上传大量构建到设备上显得不明智,但是这对分析非常有用。一旦ADB无线链接成功,Unity的分析器就可以连接到你手机的应用了。

接下来….性能优化

简单回顾梳理了一下,在Unity5上针对OC头盔和GearVR来跨平台开发的一些小技巧。接下来,你可以读下以往关于图形性能优化的博客。

作者:DARSHAN SHANKAR

原文链接:https://dshankar.svbtle.com/developing-crossplatform-vr-apps-for-oculus-rift-and-gearvr



若有问题,请随时联系!!

非常感谢!!!

时间: 2024-11-06 20:19:06

在 Oculus和 Gear VR上开发跨平台的 VR应用的相关文章

神了!React VR使得Oculus Home在Gear VR上运行更快更省电

(52VR开发网2017年5月23日讯)Gear VR近日频繁进入人们的视野. 这不仅仅是因为三星和Oculus的移动VR头显配备了新的运动控制器,还是因为在软件方面也进行了更新. 这些更新都得益于新的React VR框架. 当使用新的Gear装备时,Gear VR用户每次启动头显时都会进入Oculus Home中心的新版本,就像他们在Rift 上做的一样. 在发布之前,我们报道说,这个新版本的家庭显示的分辨率是双倍,这得益于Oculus 的首席技术官(CTO) John Carmack的一些技

走进VR游戏开发的世界

注: 原文2016年2月发表于公司内部社区, 最近才由同事转载出来, 删去了文中引用的一些内部文章和视频. 在这里我也只是把外网版本转过来, 留做备份. 背景介绍 我们组在2014年下半年尝试开发了一款 XboxOne 平台的体感游戏, 2015年上半年进行收尾工作的同时, 结合之前积累的体感交互经验, 开始进行 VR 游戏的预研工作. 在这近一年的时间里, 一方面从外界感受到了一股虚拟现实快速发展的潮流, 另一方面也体会到身边很多人对 VR 游戏的了解非常有限. 现在我们自己的VR游戏Demo

Oculus之外,那些高大上的虚拟现实(VR)装备

自Facebook收购Oculus以来,巨头们逐渐意识到它的强大和超前,并纷纷布局该领域,推动虚拟现实技术进入人类的日常生活. 虽然虚拟现实(VR)尚处于襁褓之中,距真正的商业化还有不少的路要走.但它带给人们的独特体验,正以独有的.全新方式闯入我们的世界,改变着我们的生活. 今天,我们一起来看看Oculus之外的,哪些高大上的虚拟现实装备. Control VR Control是一款虚拟现实(VR)手套.据介绍,该款手套由ControlVR公司研发而出,它采用了由美国国防部高级研究计划局设计的微

Oculus Rift正式发售,准备好开始迈向VR时代

人们等待了三年的虚拟现实设备Oculus Rift已经正式发售,而游戏媒体Eurogamer在这之前对Oculus Rift进行了一次全面的评测.在测试中给他们带来的最大惊喜是:Oculus Rift给人的感觉不仅仅是一台硬件,它更像是一个独立的平台.当你戴上它,进入到主菜单Oculus Home中,你就会明白为什么会这样说.主菜单中有很多功能:购买游戏.游戏库.下载.朋友.多媒体.开始游戏等等,这些菜单都被设计在一个虚拟的VR世界中,整体看上去就像是游戏主机的主菜单.Oculus称只要你的PC

Sublime用户如何快速高效开发跨平台App

2015年9月15日,APICloud举办了一周年开源分享会,发布开源插件支持Sublime用户开发跨平台App,APICloud 开源技术负责人周兴海分享了Sublime关于插件方面相关的内容. Sublime是一款关注度很高的的开发工具,有以下几个特点: 主流前端开发编辑器 体积较小,运行速度快 文本功能强大 支持编译功能且可在控制台看到输出 内嵌python解释器支持插件开发以达到可扩展目的 Package Control:ST支持的大量插件可通过其进行管理 接着,周兴海对APICloud

移动应用跨平台开发:《用PhoneGap来开发跨平台手机应用》

移动应用跨平台开发:<用PhoneGap来开发跨平台手机应用> 随着HTML5, CSS3, Javascript的发展,以及浏览器对这些特性的支持,使得手机跨平台成为一种趋势,跨平台意味着:开发一次,到处运行.基于(HTML5, CSS3, Javascript)的前端开发技术,可以通过PhoneGap(http://phonegap.com/)来生成对应设备的应用,如Android的APK, iOS设备的ipa等.相比原生态的应用来讲,PhoneGap开发出来的应用成本更低,甚至不需要会J

React Native 技术 开发跨平台 Native App 初探

转载请注明出处:http://blog.csdn.net/smartbetter/article/details/64190798 我们已经了解像 Titanium 和 PhoneGap 等框架,它们能让开发者用 Web 技术构建移动应用.这是一个优势,支持开发者使用原先网络和移动开发的相关技术.仅如此,相同的代码库经过小幅度的修改便能适用多个平台--这就是著名的一次编写,到处运行.然而,当涉及到构建应用的性能时,这些框架的缺点显露无遗,尽管它们有一些吸引力,但却一直更适用于构建原生应用.Rea

【转】配置 VS 2015 开发跨平台手机应用

为了使用 VS 2015 开发跨平台手机应用,VS 2015 装了很多次,遇到了很多坑,才终于弄明白怎样配置才能正常使用C#开发手机应用,现把步骤分享给大家,以免大家少走弯路. 运行环境: Windows 10 专业版 64位 Visual Studio 2015 Update 3(企业版) 1.VS 2015安装选项.通用 Windows 应用开发工具下的 适用于 Windos 10 移动模版的拟器必须勾选,跨平台移动开发下的 C#/.NET(Xamarin 4.1.1)必须勾选,Androi

开发者技术分享日:如何快速开发跨平台App

活动概况 时间:2014年12月20日14:00-17:00 地点:车库咖啡(北京市海淀西大街48号鑫鼎宾馆二层) 主办:APICloud 活动背景 在这个移动.云.大数据的时代背景下,人人口中都离不开“App”这个热门名词,然而如何降低App开发难度,减少成本,提高效率成为创业者和开发者尤为关注的内容.作为Web圈里的人想进来,但无奈技术门槛和人力成本太高:作为Native开发圈里的人又想出去,但无奈WebApp体验太差,面对当前的现状如何轻松突破App开发难题是这次沙龙交流的主题. 这次沙龙