So I had this idea to use (yet) another subdivision scheme for my control meshes. I can't remember why (possibly because I was well and trully sick of switching subdivision schemes whenever the wind changes), but I decided against using it. Now its been brought back to life and its ghastly corpse is romping around in my brain and not giving me a moment's peace.
At the moment I'm 90% finished with adding rotation objects to the scene-manager. Once that's done I'm planning on revamping the drawing method to batch draw calls by vertex buffer and texture as well as combine multiple objects' geometry into combined vertex buffers. It never ends!
Okay. All that said, converting to this new method will give me a much finer control over the shape of my meshes, the ability to define the level of tesselation on a per-edge basis and a way of doing chunked LODs on arbitrary meshes(using an octtree instead of a quad-tree) like heightfields! Basically this method uses CATMULL-ROMS on every primitive edge and does tesselation instead of subdivision. This is good because it allows me to say "I want this edge to become x new edges" instead of "I want to subdivide this edge x times". In the later case, the number of edges doubles with every iteration, so it's impossible to have an edge become a non-power-of-two number of new edges. Also, as I'm using CATMULL-ROM, I can use control-points to control the shape of each edge, or just use other points in the mesh. Basically it'll just be better. Unfortunately it involves *another* overhaul and major modification of my engine. [sad]
Anyway, I'll post as to how it's going, but this is probably going to take me a while, given my current work rate. With any luck I'll finish Diablo 2 by the end of the month and simultaneously be free of volleyball for a few months at least. On paper that means I have heaps more time to spend on development.