Normalentransformation

simon.r
Mausschubser
Mausschubser
Beiträge: 59
Registriert: 4. Okt 2010 16:13

Normalentransformation

Beitrag von simon.r » 2. Dez 2014 12:22

Hallo,

wir haben eine Frage zur Transformation der Normalen im Vertex-Shader: Aktuell wird auf die Normale die komplette Transformation (Model, View, Projection) angewendet. In GDV 1 haben wir jedoch gelernt, dass für die Transformation der Normale die Transponierte der Inversen Model-View-Matrix verwendet werden soll, da ansonsten die Normale nach der Transformation nicht mehr orthogonal zur Oberfläche ist (siehe z.B. http://stackoverflow.com/questions/2107 ... mal-matrix).
Was ist hier jetzt (warum) der richtige Ansatz?

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Normalentransformation

Beitrag von RobDangerous » 2. Dez 2014 14:11

Der Ansatz aus GDV1 ist komplett korrekt und funktioniert immer, ist aber je nachdem wie die Matrizen konkret aussehen nicht notwendig. Rotationen sind in Ordnung. Translationen sind nicht in Ordnung, fliegen aber raus, wenn man die w-Komponente des Vektors auf 0 setzt. Damit sind die üblichen View-Matrizen abgedeckt. Die meisten Model-Matrizen auch. Auf http://www.arcsynthesis.org/gltut/Illum ... ation.html ist schön dargestellt, wie jedoch eine vereinfachte Normalentransformation schiefgehen kann.
Völlig falsch ist allerdings, dass ich die Projektionsmatrix mit reingerechnet habe, das nehme ich jetzt mal raus.

Antworten

Zurück zu „Archiv“