基于运动学的世界因运动而变得混乱
你好,我一直在用Unity3d开发一个不起眼的基于AR的游戏。到目前为止,我一直使用Vuforia在一个(多)跟踪器上部署我的场景。然而,我一直在用Kudan做测试,我对它在使用跟踪器时的跟踪性能相当满意。
http://i.imgur.com/nTHs6cM.png
我的引擎是基于光线投射的碰撞,而不是"UnityEngine.Physics“(几乎所有东西都是运动学的)。当我使用Kudan引擎在跟踪器上部署我的3d环境时,我遇到了一个问题,我的整个物理都搞砸了。如果标记被移动,元素也会随之移动,但轴似乎会随着标记的变化而改变,但我的物理学似乎对我以前的轴方向做出了响应。我的角色总是在世界Y轴上向上站立(而不是跟踪器内部的局部)。另一个问题是,我的播放器3D资源不断在“站立”和“坠落”状态之间切换,最终在地板上剪切和坠落(这可能是由于相机检测中的抖动)。
http://i.imgur.com/ROn4uEz.png
我想到的解决方案之一是使用本地坐标系,但我希望有另一种解决方案,因为当我使用Vuforia时,我不必做任何进一步的修改。
任何链接或反馈都值得感谢。
发布于 2017-06-27 23:18:58
可以将transform.InverseTransformPoint和transform.InverseTransformDirection与Quaternion.LookDirection结合使用,以获得库丹摄影机相对于MarkerTransformDriver对象的位置和旋转。这将允许您在世界空间中定位摄影机,并使要在unity3d世界原点增加的任何内容保持静态。
cameraPos = markerTransform.InverseTransformPoint(kudanCamera.position);
cameraRot = Quaternion.LookRotation(markerTransform.InverseTransformDirection (kudanCamera.transform.forward));https://stackoverflow.com/questions/41102330
复制相似问题