【VR开发中的优化】VR开发与传统unity开发的区别

VR开发中的优化

youkuvr

前言

大概做了大半年的VR开发,HTCVive上与room scale和手柄控制器、激光相关的开发做过,gearvr使用oculus sdk开发做过,使用Cardboard做普通vr app在android和ios上发布也做过。

vr设备呢,HTCVive和oculus搞过,gearvr和普通Cardboard类的手机vr搞过,LG的新的glass接过,露光严重,idealens、还有一大票的国产一体机,pico、小米,嗯做的好的目前的确还是那几个大厂的。

由于我参与的项目主要围绕视频播放的功能,所以大型3d场景接触的倒不多,然而还是有很多需要优化的点,为什么呢,因为做的视频播放本身就需要对大于1080p的视频做解码、在unity中渲染,对cpu和gpu消耗都很大,挤占了部分性能,所以对其他逻辑和渲染部分的性能要求更高。

VR开发中的优化主要围绕两部分吧,一部分是由于VR的特殊场景,双眼渲染,且对帧率要求高,所以对性能要求也高,还有vr场景下一些特殊要求。另一部分是传统unity性能优化部分,对程序和美术都有要求。unity相关的优化网上已经有很多优秀的文章了,我在这只根据VR开发与传统unity开发的区别,分享一些优化的建议。

欢迎下载我们的app

youkuvrqrcode

VR优化

先从VR帧率卡说起

因为HTCVive和gearvr做的开发比较多,先说说这两个设备卡的表现,对于HTCVive而言,如果程序执行时卡顿比如loading或者什么,一般会优雅的回到HTCVive的一个默认场景,对用户还算比较友好,而对于gearvr而言,如果卡顿影响了渲染或者帧率低,那么用户头转动的时候能明显看到周围来不及渲染的黑的地方,如果渲染卡死的话,只剩最后一帧渲染的画面,周围的空间都是黑的。

对于PC而言,我们配置的显卡至少也会是970+吧,性能都比较好,cpu、渲染、IO等性能都比较高,但是到了移动端,相应操作性能都会变差,之前对比过一些操作,比如图片动态加载,在editor下可能只要几毫秒最多20几毫秒,到了移动端可能都要几十毫秒甚至2-500毫秒的都有,那么帧率降低的简直不要不要的。所以对于unity而言,不光在editor下看性能指标,也要利用profiler观察在移动设备的性能。我们在开发过程中和测试中都要不断的进行性能优化。

VR和传统游戏卡的区别

传统游戏也会做很多的性能优化,但是却可以有很多常用的解决方案,例如为了解决资源包大的问题,将资源通过异步下载并动态加载,为了减少加载的损耗,那么大不了加一个loading画面,而loading时一般而言随便卡,不太需要关注操作的阻塞延迟和帧率,因为loading时无需响应用户操作。甚至有的游戏按一个按钮也会进行阻塞,大不了出个loading嘛反正用户也会等。

loading

对于VR应用,用户都是可以自由操作转头的,一旦卡顿,影响帧率,直接会影响用户视野转动,影响体验,同时降低帧率刷新后,用户会有眩晕感,那么就很失败。

一般什么时候会发生卡顿呢,对于vr程序开发而言,往往出现在场景切换时资源加载初始化脚本逻辑执行,例如monobehaviour的awake和start里包含的大量的逻辑,甚至你以为使用了协程就没有问题,然而协程在首次执行时第一个yield前可能也包含了大量的逻辑。还有运行时动态资源加载以及常见的每帧处理事情过多导致降帧

阅读全文直接点击:http://click.aliyun.com/m/9884/

转载于:https://my.oschina.net/u/3161071/blog/832556

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值