Hello,
I'm really struggling to grasp the thinking behind OpenGL ES 2.0, and the lack of immediate mode and push/pop matrix.
Usually, when rendering a scene in OpenGL I would do something like this:
Code :GL.PushMatrix(); { //World Transformations GL.Translate... GL.Rotate... //Render first sub-component GL.PushMatrix(); { //some transformations (e.g. position of person in world) GL.Translate... GL.Rotate... //actually render the first object (e.g. a person) GL.Begin(...); GL.End(); //Render first sub-sub-component (e.g. hat on person's head) GL.PushMatrix(); { //some transformations (e.g. position of hat relative to person) GL.Translate... GL.Rotate... //actually render the first sub-sub-object (e.g. a hat) GL.Begin(...); GL.End(); } GL.PopMatrix(); } GL.PopMatrix(); //render second sub-component GL.PushMatrix(); { //some transformations (e.g. position of dog in world) GL.Translate... GL.Rotate... //actually render the second object (e.g. a dog) GL.Begin(...); GL.End(); } GL.PopMatrix(); } GL.PopMatrix();
From what I understand of OpenGL ES 2.0, I can't push/pop matrix, and instead I have to :
1) Define a shader (which appears to require me to define both a vertex AND fragment shader?!)
2) At each level of nesting (i.e. each time I push above), I have to do all the matrix transformations <i>in software</i> and push the results into the shader?
...
Seriously?
Please tell me I'm missing something here. Apart from being unbelievably inconvenient, this feels like a horrible horrible hack.
It would seem that the very first thing I'm going to need to do before OpenGL ES 2.0 is usable for me is to build a little framework on top of it so that I can do the type of object composition that I've always considered to be fundamental to OpenGL.
I sincerely hope that I'm missing something fundamental here, so I look forward to being corrected.
Regards,
James L.



