Jump to content
  • Advertisement
Sign in to follow this  
supagu

inverse transpose

This topic is 4701 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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?

Share this post


Link to post
Share on other sites
Advertisement
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!