Ich habe kürzlich an einem Spiel mit OpenGL und C ++ über GLFW gearbeitet.
Im Spiel habe ich ein Luftschiff mit einem darauf montierten Turm. Das Luftschiff bewegt sich in Weltraumkoordinaten und der Turm 'folgt' ihm.
Der Turm verfügt über einen eigenen Koordinatenraum für die Blick- / Zielrichtung. Wenn der Turm in Richtung zielt (0,0,1)
, zielt er grundsätzlich parallel zur Bewegungsrichtung des Luftschiffs.
Um dem Turm ein Weltraumziel zu geben, habe ich eine Matrix, die Weltraumkoordinaten aufnimmt und diese in Turmraumkoordinaten umwandelt.
Wenn der Turm abgefeuert wird, soll er Projektile im Weltraum erzeugen. Gibt es also eine elegante Möglichkeit, meine Transformationsmatrix zu verwenden, um die Koordinaten des Turmraums wieder in den Weltraum umzuwandeln?
Eine allgemeinere Art, die Frage zu stellen, könnte sein: Wenn ich eine Matrix habe M
, die Koordinaten von Raum A
zu Raum nimmt B
. Gibt es eine einfache Möglichkeit M
, die Koordinaten von B
bis zu ermitteln A
?