Frage

Ich mag ein erstes 3D-Spiel machen, aber ich kann die Kamera Formel rechts nicht festgelegt.

Also ich habe eine Rotation: 0 bis 359. Als nächstes werden die x, y-Koordinaten, bleiben z gleich.

Kameradrehung: 0 - vorn, 90 - links, 180 - zurück, 270 - richtig, aber ich kann es anpassen

Was ist die Formel für die Kamera?

Plattform: Panda3d, Python, opengl

Danke

War es hilfreich?

Lösung

OK, es sieht aus wie Sie eine Doom-Stil Kamerabewegung benötigen, das heißt, keine Auf-Ab-Kurve. Bedenken Sie:

  1. Sie müssen die „Welt“ zu machen, wie durch die Kamera gesehen.
  2. positive x Unter der Annahme, nach rechts und positive y auf Ihrer Frontseite, wenn die Kamera bewegt sich nach rechts bewegt sich das Bild der Welt auf der linken Seite.
  3. Wenn die Kamera schaltet sich positiv auf der linken Seite, das Bild dreht der Welt nach rechts.

Jetzt wollen wir versuchen, die Gleichungen zu konstruieren:

1.First, übersetzt die Weltkoordinaten auf die Position der Kamera:

Xwt = Xw - Xc;
Ywt = Yw - Yc;
Zwt = Zw;

(Xc,Yc,Zc) = camera position
(Xw,Yw,Zw) = world coordinates of object in the scene
(Xwt,Ywt,Zwt) = world coordinates of object translated to camera position

2.Now drehen sich die übersetzten Koordinaten um einen Winkel entgegengesetzt zu der Drehung der Kamera:

Xwc =  Xwt * Cos(psi) + Ywt * Sin(psi);
Ywc = -Xwt * Sin(psi) + Ywt * Cos(psi);
Zwc =  Zwt

Psi = angle of camera rotation
(Xwc,Ywc,Zwc) = world coordinates of object transformed to camera orientation

Sie können die beiden Schritte kombinieren und es zu einer Matrixform umwandeln.

Andere Tipps

fand ich später ein Tutorial, das mein Problem behoben:

https://www.panda3d.org/forums/viewtopic.php? t = 3037

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top