Wie verhält sich die Koordinatensystem-Händigkeit in Bezug auf die Rotationsrichtung und die Anordnung der Scheitelpunkte?

8

Beim Versuch, verschiedene Koordinatensysteme zu verstehen, stieß ich auf diese Website , die besagt: RenderMan verwendet left-handed coordinate system und die positive Rotation ist clockwise , während OpenGL right-handed coordinate system und die positive Rotation counter-clockwise verwendet.

Meine Frage ist, ob die Drehrichtung und die Händigkeit des Koordinatensystems nur zwei verschiedene Konventionen sind oder dass dies aus der Mathematik selbst resultiert?

Ebenso weiß ich, dass die vorderen Ecken von Dreiecken in counter-clokwise direction in OpenGL angeordnet werden müssen. Bezieht sich dies auch auf die Händigkeit des Koordinatensystems oder ist es nur eine andere nicht verwandte Konvention?

Und drittens, wenn ein Bild eines zufälligen Koordinatensystems mit Achsen, die als x, y, z gekennzeichnet sind, vor mich geworfen wird, wie kann ich sagen, welcher Linkshänder ist und welcher Rechtshänder? Ich weiß, dass es eine Regel mit der rechten Hand und der Mitte und dem Zeigefinger und dem Daumen gibt, aber jeder scheint es anders zu benutzen. Wie sollte ich meine Finger mit diesen Achsen ausrichten?

Es tut mir leid, dass ich wahrscheinlich eine Menge nicht miteinander verwandter Sachen gemischt habe, aber nach dem Lesen aller Arten von Internetquellen beginnen sich die Dinge in meinem Kopf zu vermischen.

    
jcxz 02.11.2013, 21:27
quelle

3 Antworten

8

Eine ziemlich häufige Methode für die linke oder die rechte Hand:

  1. Zeigen Sie mit Ihrer flachen Hand in die Richtung von X.
  2. Locke alle Finger, aber dein Zeigefinger zeigt auf Y.
  3. Erhebe deinen Daumen. Das ist Z.

Auch das ist:

  • + x = Zeigefinger
  • + y = Mittelfinger (und / oder Ring- und Fingerchen) um 90 Grad nach innen gebogen
  • + z = Daumen ragt heraus

Bestimmen Sie einen positiven XYZ-Koordinatenrahmen:

  1. Zeigen Sie mit dem Daumen in Richtung + X oder + Y oder + Z.
  2. Die Richtung, in die sich Ihre Finger rollen und zeigen, ist die Richtung der positiven Drehung.

In den meisten Fällen, mit denen ich vertraut bin (YMMV), ist die Regel der rechten Hand die Norm. Die Grafik kann manchmal ein bisschen verrückt sein, wenn man die Linke-Hand-Regel verwendet. In den Fällen, mit denen ich vertraut bin, die keineswegs erschöpfend sind, wird die linke Regel gewählt, weil der Programmierer / Designer möchte, dass Z in eine "natürliche" Richtung zeigt. Manche Leute mögen die Vorstellung nicht, dass Z in den Bildschirm hinein oder aus dem Bildschirm heraus zeigt.

Wenn einmal eine bestimmte Händigkeit gewählt wurde, dann ergeben sich Konsequenzen für die Vektorrichtungen. Obwohl ich nicht sicher bin, dass dies das richtige Beispiel ist, da ich mich eher mit Bildverarbeitung als mit Grafiken befasse, wenn ein Polygon mit orientierten Segmenten definiert wird, zeigt das Kreuzprodukt aufeinanderfolgender Segmente aus dem oder in den Bildschirm. Es ist wichtig zu wissen, welche Seite des 2D-Polygons nach außen zeigt, da das Polygon ein 2D-Objekt darstellen kann, das auf gegenüberliegenden Seiten unterschiedliche Farben hat.

Ganz allgemein wird die Wahl der Händigkeit bestimmen, wie mit Cross-Produkten umgegangen wird. "X-Kreuz Y gleich Z" ist das, was du machst, wenn du deine Finger und deinen Daumen mit deiner Hand zeigst.

Versuchen Sie, beide Hände auszustrecken und tun Sie dies:

  1. Zeigen Sie mit der linken und rechten Hand geradeaus, weg von Ihrem Körper. Das ist X.
  2. Locke deine Finger nach links - dreh eine Hand darüber, um das zu tun. Das ist Y.
  3. Jetzt strecke deine Daumen aus. Sie zeigen in entgegengesetzte Richtungen.
Rethunk 03.11.2013, 02:52
quelle
2

Manchmal malt ein Bild mehr als tausend Worte ...

Tatsächlich gibt es mehrere gültige Konfigurationen für die rechte Hand, also wählen Sie eine und bleiben Sie dabei:

    
Drew Noakes 03.12.2015 14:25
quelle
0

Links- / Rechtshänder-Koordinatensysteme und ihre jeweilige Scheitelrotation sind unterschiedliche Konventionen. Die Drehung der Scheitelpunkte ist wichtig, da sie bestimmt, in welche Richtung die Normale zeigt.

Diese Normalen werden in allen Bereichen von der Lichtberechnung bis zur Rendering-Bestimmung verwendet. Wenn die Normale des Dreiecks in die gleiche Richtung wie der Ansichtsvektor zeigt, ist sie von der Kamera weggekehrt und wird nicht gezeichnet.

Wenn der Normalenvektor des Dreiecks in die entgegengesetzte Richtung des Ansichtsvektors zeigt (mit anderen Worten, gegenüber der Kamera), dann ist das Dreieck sichtbar und es wird gezeichnet.

Da in der Computergrafik die z-Richtung (z wird normalerweise als "Front-nach-hinten" -Richtung angenommen wird, kann es auch x oder y sein) wird in einem Rechts- und Linkshänder-System gekippt, die "Rotation" der Vektoren ist geladen ist definitiv wichtig.

Um Ihre dritte Frage zu beantworten: Wenn Sie ein paar Scheitelpunkte haben und Sie wissen, welche Achse von vorne nach hinten verläuft, können Sie leicht erkennen, ob es sich um ein Rechts- oder Linkshänder-System handelt. Bei einem System mit Rechtshänder nimmt z ab, wenn Sie sich von der Kamera entfernen. In einem linkshändigen System erhöht sich z.

Sie können sehen, wie Sie Ihre Hände auf dieser Website positionieren: Rechts- / Linkshänder-Koordinatensysteme

    
Captain Skyhawk 02.11.2013 21:37
quelle