Hi!
Ich bin momentan etwas unsicher in Bezug auf Gimbal Lock mit EulerWinkel und Rotationsmatrix.
Ganz konkret bin ich mir unsicher, ob die vorgestellten relative und absolute Rotationsmethoden in David Scherfgens Buch (3D Spieleprogrammierung mit ...) frei vom Gimbal Lock Problem sind?
Er beschreibt dort die Objekte mit drei lokalen Achsenvektoren, die dann im Transformationsprozess als Rotationsmatrix bzw. Achsenmatrix zusammengefasst werden.
Die relative Rotation führt er dann wie folgt aus:
Aus einem EulerVektor (Rotation) werden aus den XYZ Komponenten die Eulerwinkel in Rad benutzt um ein Objekt anhand der lokalen Achsen zu drehen.
Sequentiell in der Reihenfolge dreht er die lokalen XYZ- Achsen.
Er bildet nach jeder Sequenz eine AxisAngle Repräsentation einer aktuellen Achse und transformiert mit dieser Rotationsmatrix die anderen Achsen.
Die absolute Rotation führt er genauso wie die relative aus nur mit den Unterschied, dass er anstatt die lokalen Achsen mit AxisAngle Represäntation die klassischen globalen Euler-zu-Rotationsmatrix Matrizen nutzt.
Prinzipiell finde ich seine Lösung echt gut aber bin mir einfach etwas unsicher im Bezug auf dieses Problem. Zumal mich es wundert warum diese Lösung nirgends propagiert wird.
Im Netz wird man ja sofort auf Quaternion geprügelt.
In manchen Büchern wird erwähnt, dass die AxisAngle Repräsentation eben den GL verhindern würde.
An anderen Stellen liest man wieder, dass das Problem immer bestehe, sobald die 3 EulerWinkel benutzt werden oder das es an der Sequenz liege.
Auch der Hinweis man solle Quaternion benutzen hilft mir mit meinem Verständnis auch nicht weiter.
Außerdem möchte ich sie explizit vermeiden.
Wie ist Eure Meinung dazu? Ich bin gespannt!
Grüße