Я искал весь вечер, но не могу найти информацию, которую ищу, или даже если это возможно, что весьма огорчает;)
Я использую 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.
Заранее спасибо за ответы:)