Speed of matrix operations
Hello there,
I am currently trying to optimize my hierarchical object transformation pipeline.
I'm using the typical approach:
glPushMatrix()
..
.. object specific transformation goes here
.. render object
..
glPopMatrix()
OK, now which one is faster:
glPushMatrix()
glTranslatef(Object->T.x, Object->T.y, Object->T.z)
glRotatef(Object->R.angle, Object->R.x, Object->R.y, Object->R.z)
glScalef(Object->S.x, Object->S.y, Object->S.z)
... render it
glPopMatrix()
or this one:
glPushMatrix()
glMultMatrix(Object->LocalMatrix)
... render object
glPopMatrix()
I personally like the second one, it has lower overhead and less memory references, but I read somewhere, that glMultMatrix and glLoadMatrix are quite slow ?
And what about the performance of glPushMatrix and glPopMatrix ? I assume that on newer 3d cards with hardwired t&l this should be implemented in hardware and therefore very fast ?
Thanks !
A.H aka Blueshift
Edited by - Blueshift on July 5, 2001 3:09:15 PM
The glPush* functions aren''t that great on speed to being with ( I was just talking about this with a guy from #flipcode), and there has been much discussion over it at OpenGL.org''s forums. In the end, don''t use the glPush/Pull functions if you don''t have to.
------------------------------
Trent (ShiningKnight)
E-mail me
OpenGL Game Programming Tutorials
------------------------------
Trent (ShiningKnight)
E-mail me
OpenGL Game Programming Tutorials
push/pop matrix isnt so bad
push/pop attrib is very bad though
the loadmatrix version will be the quickest.
http://members.xoom.com/myBollux
push/pop attrib is very bad though
the loadmatrix version will be the quickest.
http://members.xoom.com/myBollux
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement