2010-12-20 19 views
0

Ich möchte eine erste Person 3D-Spiel machen, aber ich kann nicht die Kamera Formel richtig einstellen.Math Formel für die erste Person 3D-Spiel

So habe ich eine Drehung: 0 bis 359. Als nächstes die x, y-Koordinaten, z bleibt gleich.

Kamera Rotation: 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

+4

Wenn Sie ein Codebeispiel posten und erklären könnten, was es tun soll und was es * tatsächlich * tut, könnte es einfacher sein, es zu beantworten. – FrustratedWithFormsDesigner

+0

Haben Sie auch keine Hoch-/Runterdrehung der Kamera? Normalerweise berechnet man die Drehungen von wo sich die Kamera befindet und wohin sie schaut. – ewanm89

+0

Ja, aber was ist die Formel dafür? –

Antwort

3

OK, es sieht aus wie Sie eine Doom-Stil benötigen Kamerabewegung, dh keine Auf-/Ab-Drehungen. Betrachten Sie dies:

  1. Sie müssen die "Welt", wie durch die Kamera gesehen werden.
  2. Angenommen positives x ist rechts und positives y ist vorne, wenn sich die Kamera nach rechts bewegt, bewegt sich das Bild der Welt nach links.
  3. Wenn sich die Kamera positiv nach links dreht, dreht sich das Bild der Welt nach rechts. Jetzt

, wollen wir versuchen, die Gleichungen zu konstruieren:

1.First, übersetzen die Weltkoordinaten an 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 die übersetzten Koordinaten um einen Winkel gegenüber der Kameradrehung:

Sie können die beiden Schritte kombinieren und in eine Matrixform umwandeln.