unity3D EasyAR 识别模型抖动解决方案
来源:互联网 发布:java中合法关键字 编辑:程序博客网 时间:2024/05/17 00:02
EasyAR引擎不知道什么原因导致识别成功后,模型出现高频率抖动,问官方无解后,尝试按论坛里的朋友的方式试验
即,在模型抖动的幅度在一定范围内的时候,不允许该模型抖动,但是这样会导致平移相机时,模型的移动有卡顿。
如果大家有更好的改进方案,烦请告知一下本人,感谢!
首先需要在 Augmenter 设置世界中心为 Augmenter
然后在ImageTarge 的 EasyImageTargetBehaviour类重写Update方法
具体代码如下
protected override void Update() { base.Update(); float myrx = 0; myrx = this.transform.localEulerAngles.x; while (myrx >= 360)//为了让判断条件时方便,强制把所有不在1~270以内的数字,转换为-270~270 { myrx -= 360; } while (myrx <= -360) { myrx += 360; } while (myrx > 270 && 360 - myrx >= 0) myrx = -(360 - myrx); float myry = 0; myry = this.transform.localEulerAngles.y; while (myry >= 360) { myry -= 360; } while (myry <= -360) { myry += 360; } while (myry > 270 && 360 - myry >= 0) myry = -(360 - myry); float myrz = 0; myrz = this.transform.localEulerAngles.z; while (myrz >= 360) { myrz -= 360; } while (myrz <= -360) { myrz += 360; } while (myrz > 270 && 360 - myrz >= 0) myrz = -(360 - myrz); //关键,当模型抖动超过一定范围时,不修正模型的坐标角度,记录坐标和角度 if (((Math.Abs(this.transform.position.x - lastX) > 0.06 || Math.Abs(this.transform.position.y - lastY) > 0.06 || Math.Abs(this.transform.position.z - lastZ) > 0.06)&& (Math.Abs(this.transform.position.x - lastX) > 0.13 || Math.Abs(this.transform.position.y - lastY) > 0.13 || Math.Abs(this.transform.position.z - lastZ) > 0.13))|| ( (Math.Abs(myrx - lastRX) > 3 &&Math.Abs(myry - lastRY) >3 &&Math.Abs(myrz - lastRZ) > 3)&& (Math.Abs(myrx - lastRX) > 6 || Math.Abs(myry - lastRY) > 6 || Math.Abs(myrz - lastRZ) > 6)) { lastX = this.transform.position.x; lastY = this.transform.position.y; lastZ = this.transform.position.z; lastRX = myrx; lastRY = myry; lastRZ = myrz; this.transform.rotation = Quaternion.Euler(lastRX, lastRY, lastRZ); this.transform.position = new Vector3(lastX, lastY, lastZ); } else//模型抖动范围过小时,修正模型坐标为上一次正确的坐标 { this.transform.rotation = Quaternion.Euler(lastRX, lastRY, lastRZ); this.transform.position = new Vector3(lastX, lastY, lastZ); } }
0 0
- unity3D EasyAR 识别模型抖动解决方案
- easyAR unity3d识别拍照图片
- Vuforia SDK---- Vuforia+unity模型抖动和识别错误解决方案
- 关于模型抖动解决方案
- unity3d 摄像机抖动情况和解决方案汇总
- easyar unity3d播放视频
- EasyAr实现图片识别
- unity3d 重叠面 图层抖动的解决方案,z-fighting.
- unity3d 动画抖动解决
- Unity3D镜头抖动特效
- unity3d 摄像机抖动特效
- Unity3D-相机跟随抖动
- EasyAR
- EasyAR
- EasyAR开发技巧---模型交互操作
- EasyAR(一)——显示模型
- 零基础Ar学习之Unity3D运行EasyAr Sample
- 在unity3d中动态创建easyAR的imageTarget
- C#中使用MATLAB
- 网络寻路(dfs或者枚举)
- linux自旋锁——读写锁
- nginx.conf配置示例讲解
- java一些常用代码的分享
- unity3D EasyAR 识别模型抖动解决方案
- Install Hadoop on local machine
- 设计模式(三)装饰者模式之java.io
- 爬取豆瓣电影数据
- 继承
- 在ASP.NET中使用SQL Server作为数据库,DB First方式使用EF(EntityFramework)进行开发和部署时的connectionString
- javascript DOM节点、元素
- MySQL 多表关联更新及删除
- 4.6第七周