Sorry, it’s been a while since the last update. I don’t think I’m a natural blogger, partly because I’m so darn busy all the time, and partly because I don’t really think the world has any particular interest in the humdrum miscellany which clutters my everyday existence. I read some blogs and feel like I’m reading a letters column in a women’s magazine, and I really don’t want to contribute to that. Anyhow, onto the meat…
I’ve been pretty much constantly working on XSI over the past couple of weeks - I’ve had a few test models from people which have shown up a few issues, and I’ve been tinkering with material exporting. XSI has a really quite nice system where you separate out shaders (aka materials) for realtime use from the offline rendering shaders. I like this because trying to translate materials designed for offline use is always a bitch. XSI has a reasonably full set of GL and DirectX basic components (e.g. OGLDraw and DXDraw are essentially an OGRE pass, complemented by OGLShade/DXShade which are the lighting components - you get the idea). You can chain lots of things together to build up a multipass material with texture transforms and all sorts.
You can also reference Cg, DirectX assembler and HLSL shaders, which is pretty neat. I’m not supporting those yet, because unfortunately the shader plugins which come with XSI force you to embed the code in text boxes, rather than referencing external files, which means you can’t uniquely identify and thus share shaders between exports. SoftImage have suggested I extend their CG/DirectX shader plugins (which you get the source for) to support this, which I may do in due course; but for now I have a few more important things to tackle.
The main thing on my list is automatic conversion from IK to FK for animations. I;ve spent a fair amount of time debugging bad exports, and most of the time one of the reasons is that the animation hasn’t been properly converted to FK. When I see the complexity of some of the skeletons artists are using, I can see why it’s easy to get it wrong. I hope to automate this entirely but it’s likely to take a little time to get right.