Bits and bobs

· by Steve · Read in about 2 min · (294 Words)

I’ve been slowly but surely clearing things from my TODO list. I’ve enhanced the support for custom parameters on Renderable and made the mapping of those parameters to shaders scriptable and easier to use. The result is that you don’t have to define so many material variations, you can use a single one which delegates the setting of shader parameters to the Renderable. You can also override this in custom Renderables if you like to do even more sophisticated things.

I’ve been fixing a few issues introduced by the new mesh format, and a few older issues with it. I also discovered that allowing the XML format completely free reign over the buffer layout has a drawback - some of the XML produced by existing exporters is not appropriate for all uses (e.g. software skinning). Therefore I’m in the process of making XMLConverter automatically reorganise the buffers to a format recommended by Ogre (based on whether the mesh is animated or not) so that existing exporters will continue to work. You can turn this behaviour off with a command line switch , so if your XML really knows what it’s doing, it can still control the structure completely.

I also added a slightly faster but slightly less accurate rotational interpolation method for skeletal animation - normalised lerp (nlerp). It’s now the default (over spherical lerp (slerp) since it improves the frame rate by anywhere between 5 and 10% in my tests (higher the more skeletons you have), and personally I can’t tell the difference. Purists can always revert to spherical by setting a simple option at runtime.

I still have plenty of little things to address, not least of which is wading through the patch list, before 0.15. But the list is getting smaller!