Why does it transpose of inverse matrix?
In the last section, we know what is the transformation matrix for the normals. I will write it here again.
But this is not a transpose of inverse matrix. It's just a left inverse matrix. Because a normal vector is a row vector, this is the correct notation. But, in a graphics library, i.e. OpenGL, we usually don't distinguish row vectors and column vectors in the computer memory. Moreover, we also don't distinguish points and vectors in the computer memory, they are usually length three (or four) of array. A usual vector is a column vector, and since we don't distinguish normal vectors and usual vectors, they are all treated as column vectors. But actually they are different. This point, you can see the difference. To make it normal vector, we need to transpose a normal vector to make it a column vector. The transpose of Equation 5 is:
Now you see why most of the books said normal transformation is a transpose of inverse matrix.
I have a bit more simple formulation, although the meaning is the same. This formulation starts with a normal's equation.
When v is transformed by a matrix A, the correspond transformation for the normal should be
Again, we transpose the
to make the normal vector a column vector.
Comments