Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

02.09.2015, 15:46

Gimbal Lock - EulerWinkel und Rotationsmatrix

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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

04.09.2015, 07:05

Gimbal Lock ist ein Problem von Eulerwinkeln und nicht von Matrizen. Sobld du Eulerwinkel hast, hast du Gimbal Lock, da helfen auch Quaternions nicht. Hier wird das ganze ziemlich gut erklärt: https://www.youtube.com/watch?v=zc8b2Jo7mno

Ähnliche Themen