Wie bekomme ich die Orientierung der Kamera in THREE.js?

8

Ich erstelle ein 3D-Spiel mit THREE.JS und der Web Audio API. Eines der Probleme, die ich habe, ist, dass ich die Web-Audio-Listener-Orientierung verwenden und den Hörer als Kamera definieren möchte, deren Position und Richtung ständig aktualisiert werden.

Meine Frage, gibt es da eh einfach die Vektorrichtung einer DREI Kamera?

Ich habe versucht, es zu berechnen, indem ich die alte Kameraposition verwende und die Geschwindigkeitsvektoren benutze, um zu berechnen, in welche Richtung es zeigt, aber das funktioniert nicht, wenn die Kamera still steht ...

Wäre es möglich, mithilfe von camera.rotation.x, camera.rotation.y, camera.rotation.z einen Einheitsvektor zu erstellen?

oder gibt es einen noch einfacheren Weg?

Vielen Dank für Ihre Zeit!

    
Cabbibo 24.12.2012, 16:40
quelle

3 Antworten

15

Sie möchten wissen, in welche Richtung im Weltbereich die Kamera schaut.

In Kameraraum befindet sich die Kamera am Ursprung und schaut nach unten auf ihre negative z-Achse.

Wählen Sie einen Punkt vor der Kamera im Kameraraum:

%Vor%

Verwandle diesen Punkt nun in den Weltraum:

%Vor%

Sie können nun den gewünschten Richtungsvektor konstruieren:

%Vor%

BEARBEITEN: Aktualisiert für three.js r.57

EDIT: Siehe auch: three.js gesetzt und lesen Sie den Kamera-Look-Vektor

    
WestLangley 24.12.2012, 18:50
quelle
2

In Revision 69 (nicht sicher, in welcher Revision es eingeführt wurde) können Sie

aufrufen %Vor%

um den Kamera-Orientierungsvektor zu erhalten.

    
pkout 04.12.2014 04:16
quelle
2

Wenn Ihre Kamera ein Kind des Spielerobjekts ist, z. im FPS-Spiel. Machen Sie dieselbe Berechnung für den Spieler (Eltern der Kamera), und verwenden Sie diese (der Bullit erhält die richtige Richtung, in diesem Fall von obj)

%Vor%

}

    
Joris 10.02.2015 10:28
quelle