View Full Version : defining and manipulating 4x4 matrices
03-05-2004, 12:18 AM
I would like to multiply a matrix by some rotation and translation matrices. Can someone please give me an example of how to define a 4x4 matrix? DO we enter it row by row or column by column?
Can i vector multiply by (*)?
03-05-2004, 02:41 PM
You can answer this question easily by loading an indentity matrix on the modelview, calling glRotate and reading the matrix result.
From the OpenGL FAQ:
9.005 Are OpenGL matrices column-major or row-major?
For programming purposes, OpenGL matrices are 16-value arrays with base vectors laid out contiguously in memory. The translation components occupy the 13th, 14th, and 15th elements of the 16-element matrix.
Column-major versus row-major is purely a notational convention. Note that post-multiplying with column-major matrices produces the same result as pre-multiplying with row-major matrices. The OpenGL Specification and the OpenGL Reference Manual both use column-major notation. You can use any notation, as long as it's clearly stated.
Sadly, the use of column-major format in the spec and blue book has resulted in endless confusion in the OpenGL programming community. Column-major notation suggests that matrices are not laid out in memory as a programmer would expect.
03-05-2004, 02:44 PM
P.S. you'll only be able to vector multiply if you have a class that has implemented a method to do su. There is no C or C++ code for matrix support in OpenGL, it's just a brainless array of floats.
OpenGl will perform appropriate vector multiplies during the transformation process but that is an automatic internal detail.
03-06-2004, 06:47 AM
I got it! All thanks to your help, dorbie. http://www.opengl.org/discussion_boards/ubb/smile.gif
Powered by vBulletin® Version 4.2.2 Copyright © 2014 vBulletin Solutions, Inc. All rights reserved.