• FEATURED

View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

# Matrix multiplication question

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

3 replies to this topic

### #1Qoy  Members

Posted 29 July 2001 - 08:58 PM

If I'm multiplying a 4x4 matrix by a vector, using a homogeneous coordinate for the vector, then I understand that if the matrix is such that the homogeneous coordinate becomes other than 1 after the operation, I'm supposed to multiply the vector by the reciprocal of what it becomes to renormalize it. But what if the matrix is such that the coordinate becomes 0? If that's the case, do I just ignore it and skip the extra multiplications? I hope this question makes sense, it's late Thanks! Edited by - Qoy on July 30, 2001 3:59:23 AM

### #2johnb  Members

Posted 29 July 2001 - 11:25 PM

In general you should not see this. If you make a matrix the normal way, combining a rotation with a translation, you should get something like:

(a b c p)
(d e f q)
(g h i r)
(0 0 0 1)

The abcdefghi is the rotation matrix, the pqr the translation vector. But the interesting row is the last one, as with it set to (0 0 0 1) it will mean the homogeneous (w) coordinate is preserved by the multiplication, and so if it is 1 in the input vector it will be 1 in the output vector, and you will not need to renormalise.

If your matrix looks different from this you are either doing something wrong or trying to do something different from just transforming a vector. If it''s wrong I suggest you look at your matrix creation routine(s) to see what''s going on. Otherwise it might help if you say a bit more about what you''re trying to do.

### #3Qoy  Members

Posted 30 July 2001 - 10:06 AM

Thanks. It''s not output from my transformation functions, but there is need to renormalize from projection matrices, and I know that if the projection matrix is done right then the homogeneous coordinate shouldn''t become zero either (at least, that''s how it seems to me).

I''m pretty new to 3D programming, and I wasn''t sure whether or not this situation would come up at any point in using valid matrices for some purposes other than transformation. Could it?

### #4grhodes_at_work  Members

Posted 31 July 2001 - 05:32 AM

Are you really transforming a pure vector----such as a direction vector or a normal vector? Or are you transforming a coordinate? For a coordinate the homogeneous coordinate should be 1 and for a pure vector it should be 0.

Regardless, as johnb mentions, the homogeneous coordinate is preserved in the multiplication.

Graham Rhodes
Senior Scientist
Applied Research Associates, Inc.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.