Original Post
I've been playing around with Python and PyOpenGL for the last few weeks. Before that, I used C# and Managed D3D. When using D3D, I would store the transformation of a "chunk" of geometry in a Matrix structure. I could create and modify a Matrix using built-in methods, then apply it to the current scene (using the SetTransform method or a MatrixStack object). In OpenGL, it seems like I can only make changes to the matrix on the top of my stack. Instead of storing each chunk's local transformation in a single Matrix object, I somehow need to have each chunk make the appropriate glTranslate/glRotate/glScale calls to the top matrix in the stack. I could store each chunk's transform in a matrix array, but I would then have to either write my own matrix manipulation methods, or use the matrix stack for building and extracting the matrix. Neither option is particularly appealing. How do most OGL devs handle this?