Unity3D Vuforia 脱卡时遇到问题
来源:互联网 发布:mac其他文件怎么清理 编辑:程序博客网 时间:2024/05/21 08:04
前天帮公司做简单的Vuforia的脱卡遇到一个很奇葩的问题,一开始以为是我代码出问题,但是经过多轮的检查和验证发现代码并没有问题。
那么我遇到什么问题请允许我慢慢道来,Vuforia和Mataio都是整个行业的领军企业,Vuforia现在仍然是行业应用最多的AR SDK,为了最求性能和稳定性首选肯定是Vuforia。那么除去Vuforia的性能优化以外我们还要对自身代码结构、模型等进行优化。毕竟是一个在手机上跑的APP这样我们就要严格控制模型面数。
如图所示的面数是在没有光照前提下实际面数,那么开启实时光后就会出现一个很大的变化,模型面数就会激增到2.2M面,那么我们需要进行灯光烘培避免实时光带来的性能消耗,因此需要勾静态物体进行灯光的烘焙。在PC上运行的时候你会发现,所有的功能都是正常运作,脱卡、跳回原来的位置这些功能都是否正常的运行着,已发布到手机ipad就出问题。
那是什么问题呢?IPad和手机都出现了一部分模型脱卡,还有一部分停留在原来的地方?一开始我以为是我代码的问题,我在PC上反复的实验和验证,都没有出现移动端的问题,那么可以确定代码是没有问题的,那么开始纠结这个究竟是什么原因导致的呢?在机缘巧合下我在其他项目中尝试后发现,原来问题是出现在Unity性能优化上的问题。Unity3D在用户勾起静态物体的时候,就会自动进行帮程序进行静态批次的合并,简单来说就是程序员勾起静态物体之所以会性能得到一定的优化,主要取决于Unity对模型进行了网格合并,网格合并是对渲染批次优化的最好方式。然而在项目中模型的静态有一些重要信息是不变的,静态物体是接受一切三维功能的操作,因此脱卡后模型转移了父节点,同时对父节点进行操作,功能就失效了。
那么为什么会有一部分模型脱卡呢? 这个原因我暂时不清楚,毕竟没有Unity3D的源码。
那么如果我们想使用静态灯光,但是又不影响脱卡功能怎么办呢?
方法有两种:
第一种在勾起模型静态的时候,直接选择Lightmap Static即可这样就可以烘培出灯光,而且不影响到脱卡功能。
第二种方法:直接开启静态物体功能,然后在Player Setting里面把Static Batching的勾去掉即可,这样Unity就不会自动帮你合并网格。
这两种方式都可以避免出现我所说的,脱卡后模型依旧不动的问题。
(PS:顺便鄙视一下,一些所谓的程序猿,人家给不给红包是他自己做人的问题,你主动向别人先要红包,这是你做人的问题....不给就骂人或者是不教人,这种人有再厉害的技术也有限,这些人有损我们程序猿的形象)
- Unity3D Vuforia 脱卡时遇到问题
- Unity+Vuforia 开发遇到的问题
- Unity3d vuforia 调用三星平板相机聚焦的问题
- Unity3D AR技术 vuforia SDK
- Vuforia unity3d 发布 eclipse工程
- Unity3D Vuforia Android 相机调焦
- Vuforia unity3d 发布 eclipse工程
- Unity3D Vuforia Android 拨打电话
- Unity3d vuforia增强现实(AR)
- (Unity3d)Vuforia开发基础
- Vuforia SDK---- AR开发vuforia 问题总结
- Vuforia SDK---- Unity3D AR增强现实技术 vuforia SDK介绍
- Vuforia开发问题总结
- Vuforia+Hololens定位问题
- 基于 vuforia + unity + android studio 的AR开发中遇到的问题
- Unity3D使用天气插件遇到问题
- unity3d android 遇到的问题备忘
- Unity3D 串口通信 遇到的问题记录
- git的常用命令
- MagicIndicator
- mysql与oracle的分页语句
- 堆排序-教训啊
- 题目:有一分数数列,2/1,3/2,5/3,8/5,13/8,21/13,,求出这个数列的前20项之和。
- Unity3D Vuforia 脱卡时遇到问题
- simulik中的液压建模Simscape_Fluids资料收集及学习(原SimHydraulics)
- (原创)介绍一个优秀的图片压缩库Compressor
- 云客Drupal8源码分析之实体Entity概述
- ansible安装部署
- XMPP 和 socket 的区别
- Link 标签 rel=Stylesheet的实际作用
- Android 自定义View之位置参数
- Android BLE 开发