I really should be working on adding content. But I am “that guy” who has to go and correct regrettable decisions of the past before I can move on.
Anyway I reached a major milestone by eliminating this really old and questionable library called Cal 3D, which I was using to do my character animation. Cal 3D has three big issues:
- It’s written in C++
- It uses a terrible representation of quaternions
- It does all the vertex skinning calculations on the main CPU
I really don’t like C++, and now that Cal 3D is gone, The Ditty of Carmeana is Certified C++ Free, and I am happy about that. It now uses only Python and plain C. (Unfortunately, I’ll have to add C++ code back in when I add Steam interactions.)
Cal 3D for some reason uses a representation of quaternions that no one else uses. (I have my suspicions that this representation was the result of some coder with too much time on his hands trying to optimize away a single addition instruction and realizing he could do that by shifting the sign and order of the components.) Anyway, I now use normal quaternions and that’s spiffy.
But those were just annoyances. The real benefit of this move is that I can start animating poses using the vertex shader, which is no small thing seeing how I need the CPU for the slowness of Python. I haven’t actually added the shader yet (that’s another milestone) but everything’s finally set up for it.
Pango, you’re next.