Archived

This topic is now archived and is closed to further replies.

Blueshift

Speed of matrix operations

Recommended Posts

Blueshift    122
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

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites