Linke und rechte Koordinatensysteme

7

In Blender und anderen 3D-Modellierungswerkzeugen ist das Koordinatensystem rechtshändig, während sie in Unity 3D und Orbiter Space Flight Simulator linkshändig sind. Warum kann dies passieren? Warum verwenden sie nicht immer das rechte Koordinatensystem, um die Sache zu vereinfachen? Warum verwenden nicht alle Programme, die sich mit 3D-Grafiken befassen, Z + als Up?

 Y         |  Z
 ZX        |  YX
RIGHT-HAND | LEFT-HAND
TOP VIEW   | TOP VIEW

(Glücklicherweise konvertiert Unity3D vom Blender-Koordinatensystem zum Unity3D-Koordinatensystem.)

Ming-Tang
quelle

Antworten:

10

Es ist nur Tradition. Kein System ist objektiv besser als das andere, daher muss man sich nur daran gewöhnen, beide zu verwenden und von Zeit zu Zeit zwischen ihnen zu wechseln!

Rechtshändige Koordinaten sind traditionell für die Modellierung, bei der man sich die XY-Ebene als horizontal und die Z-Achse als vertikal vorstellt.

Linkshändige Koordinaten sind traditionell für Kameras, bei denen man sich die XY-Ebene als vertikal vorstellt (entsprechend den Bildschirmkoordinaten, wenn die Kamera aufrecht steht) und die Z-Achse in den Bildschirm zeigt (entsprechend dem Z im Z-Puffer). .

Modellierungsanwendungen wie Blender verwenden daher häufig rechtshändige Koordinaten, und Spieleentwicklungs-Toolkits wie Unity verwenden häufig linkshändige Koordinaten. Einige Systeme gehen jedoch in die andere Richtung: RenderMan ist Linkshänder und OpenGL ist Rechtshänder (oder zumindest in früheren Versionen war es jetzt ziemlich agnostisch).


Ein weiterer Grund, warum Händigkeit unterschiedlich sein kann, sind unterschiedliche Konventionen über die Richtung der Y-Achse in zwei Dimensionen. In jenen fernen Tagen, als Computerbildschirme Kathodenstrahlröhren verwendeten, wurde das Display vom Elektronenstrahl von oben nach unten und von links nach rechts abgetastet. Daher war es praktisch, die Y-Achse mit dem Koordinatenursprung oben links über den Bildschirm laufen zu lassen. Andererseits ist es in der Mathematik üblich, dass die Y-Achse nach oben zeigt, wobei der Koordinatenursprung unten links liegt. Wenn Sie eine Z-Achse hinzufügen, führen diese Konventionen zu dreidimensionalen Koordinatensystemen unterschiedlicher Händigkeit.

Gareth Rees
quelle
Ferne Tage von Kathodenstrahlröhren? Nicht so weit weg :)
Asche999
2

Einfache Antwort, da es keine strenge Regel gibt, eine bestimmte Konvention zu befolgen .

Sie können sogar ein neues Koordinatensystem für Ihre Anwendung erstellen. Und die Leute, die es benutzen werden, müssen sich an das Neue gewöhnen. Keine Frage.

Quazi Irfan
quelle
0

Weder die Konvention für Linkshänder noch für Rechtshänder ist objektiv besser als die andere, und in ähnlicher Weise ist keine Wahl, für welche Achse "oben" sein soll, objektiv besser als die andere. Unterschiedliche Anwendungen haben unterschiedliche Anforderungen, und für sie ist eine bestimmte Auswahl möglicherweise idealer. Aber das stimmt im Allgemeinen nicht.

Außerdem ist es eine einfache Operation, zwischen Koordinatensystemen zu konvertieren.

Marco A.
quelle
'einfach'? Ich denke, jemand musste noch nie quaternionsbasierte Animationsdaten von einem rechtshändigen Modellierungswerkzeug in eine Engine konvertieren, in der sich alles im linkshändigen Raum befindet.
MrCranky
1
Ich habe und schlimmer; Ich habe nicht "einfach" gesagt, sondern direkt. Transformierende Transformationen (z. B. Animationsdaten) können auf eine andere Matrixtransformation reduziert werden. Das Ableiten der geeigneten Transformation ist etwas schwierig.