OpenGL 3.3 core
After a few weeks of coding I’ve moved the renderer from OpenGL 2.something to OpenGL 3.3 core. This process proved to be a not so easy task mainly because I had to modify a few shaders and change the way the meshes get rendered. One thing to note about 3.3 is the way of rendering geometry. It doesn’t support immediate mode ofcource, it doesnt support vertex arrays and it doesnt support the use of vertex buffer objects (VBOs) outside vertex array objects (VAOs). The changes in the shaders were not that difficult. The modifications were to remove the varyings and replace them with in/out variables, remove the gl_FragColor and add a few layouts for some attributes. The shaders worked without causing major headaches.
With the transition to 3.3 core I found an opportunity to change the organisation of meshes and materials. The meshes now contain only the VBOs and the materials do not have any information about the depth passes. A mesh can now have multiple compatible materials. The container that has meshes, materials, skeletons and animations is called model.
The work in the renderer is not yet complete. I have to rewrite the debug rendering stage and for that I need think of an optimal way to draw debug primitives (mainly lines).
XML files
One more thing is the new file format for materials. I’ve moved away from the custom formats and its now the materials are in XML. To parse the XML AnKi uses the boost property_tree container. The model files are in XML as well and only the lights are left to be done.
Future
For the future AnKi has quite a lengthy TODO list
- Modify the hardware skinning by implement texture buffers and use them as bone transformations in the shaders
- Optimize the animation by the means of transform feedback (details will follow)
- Finish the shredder tool that splits meshes in little octree cubes
- Implement animation blending
Continue reading “Status report: OpenGL 3.3 core & XML files” »