Seite 1 von 1

Normalentransformation

Verfasst: 2. Dez 2014 12:22
von simon.r
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?

Re: Normalentransformation

Verfasst: 2. Dez 2014 14:11
von RobDangerous
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.