prev up inhalt next

Transformation der Normalenvektoren

Die Normalenvektoren müssen bei der Transformation von Objektpunkten ebenfalls abgebildet werden. Wenn diese Transformation z.B. eine nicht-uniforme Skalierung ist, dann bleiben die Winkel zwischen einzelnen Flächen nicht erhalten.


Winkeluntreue unter nicht uniformer Skalierung

Wenn die Normale $\vec{n}$ mit derselben Matrix $M$ transformiert wird, wie die Objektpunkte einer Fläche $F$, ist $\vec{n}$ anschließend evtl. nicht mehr senkrecht zu $F$.

Wie muß $\vec{n}$ transformiert werden?

Seien $P_1, P_2$ zwei Punkte der Ebene mit Normalenvektor $\vec{n}$. Sei $\vec{v} =~P_2 - P_1$.

Offenbar gilt

\begin{displaymath}\vec{n}^T \cdot \vec{v} = 0\end{displaymath}

Daraus folgt

\begin{displaymath}\Rightarrow \vec{n}^T \cdot M^{-1}M\cdot \vec{v} = 0\end{displaymath}

Durch zweimaliges Transponieren erhält man

\begin{displaymath}((M^{-1})^T \cdot \vec{n})^T \vec{v'} =~0\end{displaymath}

Für den transformierten Vektor $\vec{n'}$ muss offenbar gelten

\begin{displaymath}\vec{n'}^T \cdot \vec{v'}=~0\end{displaymath}

Aus den beiden Gleichungen folgt daher

\begin{displaymath}(M^{-1})^T \cdot \vec{n} =~ \vec{n'}\end{displaymath}

Also muss bei einer Fläche der Normalenvektor $\vec{v}$ mit der transponierten Inversen der Transformationsmatrix $M$ transformiert werden.


prev up inhalt next