我整个晚上都在搜索,但找不到我正在寻找的信息,或者即使有可能,这也很令人痛苦;)
我正在使用 Java3D,但不知道如何在世界空间中旋转相机。
我的左/右和上/下旋转都发生在本地空间。这意味着如果我左右移动,一切看起来都很好。但是,如果我向下看 90 度,然后再向右看 90 度,一切似乎都在一边。
目前,我正在做以下事情。这将导致上述效果:
TransformGroup cam = universe.getViewingPlatform().getViewPlatformTransform();
Transform3D trfcam = new Transform3D();
cam.getTransform(trfcam);
trfcam.mul(Camera.GetT3D()); //Gets a Transform3D containing how far to rotate left/right and how far to move left/right/forward/back
trfcam.mul(Camera.GetRot()); //Gets a t3d containing how far to rotate up/down
cam.setTransform(trfcam);
或者,我尝试过的一件事是旋转根,但它围绕 0 旋转,所以如果我将相机从 0 移开,它就会变坏。网络上有什么东西可以告诉我如何实现这种事情吗?我尝试了很多不同的事情,但似乎根本无法理解它。我熟悉这个概念,因为我在 Ogre3D 中实现了它,只是不熟悉 J3D 中的土地法则。
提前感谢您的回复:)