inverse transpose
hrmm, what does this mean? I understand what the inverse does. I also know you can use the transpose of a matrix to be the same as a cheap inverse in some situations, so im confused while you would apply both?
can some one clarify?
The indentity of the transpose and inverse is given in the case that the orginal matrix is build from ortho-normal vectors only. In general both operations are different, and hence their applications are others.
In the case of 3D gfx a typical application of a combination of both is if normal vectors have to be transformed. Think of a height map that is scaled in direction of the height (say y) by a value less than 1, so that the height map gets more shallow. Now think of pre-computed normals transformed the same way: They were no longer orthogonal. That is why one must not transform normals like points.
In the case of 3D gfx a typical application of a combination of both is if normal vectors have to be transformed. Think of a height map that is scaled in direction of the height (say y) by a value less than 1, so that the height map gets more shallow. Now think of pre-computed normals transformed the same way: They were no longer orthogonal. That is why one must not transform normals like points.
There's nothing magical about inverse transpose.
Just like haegarr said, we want to preserve the nice properties that the normals had prior to the transformation.
Let's say that we have two points o and p, and a normal n.
Before the transformation we had:
(1) Dot( n, p-o ) = nT(p-o) = |n||p-o|Cos(theta),
where theta is the angle between n and p-o.
We'd like (1) to hold after the transformation as well.
That is, given any transformation T, we'd like to find a "special" transformation G such that:
(2) Dot( Gn, Tp-To ) = |n||p-o|Cos(theta).
(3) Dot( Gn, Tp-To ) = Dot( Gn, T(p-o) ) = (Gn)TT(p-o) = nTGTT(p-o)
If GTT = I, then (2) would surely hold (compare with (1)). And this is how we get:
GT = T-1,
and finally:
G = T-T
Just like haegarr said, we want to preserve the nice properties that the normals had prior to the transformation.
Let's say that we have two points o and p, and a normal n.
Before the transformation we had:
(1) Dot( n, p-o ) = nT(p-o) = |n||p-o|Cos(theta),
where theta is the angle between n and p-o.
We'd like (1) to hold after the transformation as well.
That is, given any transformation T, we'd like to find a "special" transformation G such that:
(2) Dot( Gn, Tp-To ) = |n||p-o|Cos(theta).
(3) Dot( Gn, Tp-To ) = Dot( Gn, T(p-o) ) = (Gn)TT(p-o) = nTGTT(p-o)
If GTT = I, then (2) would surely hold (compare with (1)). And this is how we get:
GT = T-1,
and finally:
G = T-T
this may help:
http://www.imaging.robarts.ca/coders/content/programmingLinks/TheMathematicsofthe3DRotationMatrix.htm
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement