Just an update to let you know what’s going on. I’m currently enhancing the materials aspect of the engine to support a few more texture effects, such as animated textures and procedural texture coordinate modifications. I’m also starting to include a number of other rendering flags in the Material class to make it simpler to set up customised rendering settings for specific geometry and have those settings automatically reset for other renders – things like culling modes, filtering options etc. This makes the Material class more and more like a ‘shader’ in common terminology and will hopefully make it easier for me to get the SceneManager to pick the most appropriate order in which to change render states for the greatest optimisation. It will also free applications from detailed render state management so they can just attach all rendering settings to materials and let the SceneManager sort out when to issue them to the RenderSystem, whch is as it should be.
While I’m at it I’m also refactoring some of the rendering processes of the basic SceneManager to make them more reusable by scene-specific subclasses (such as the recently introduced BspSceneManager).
Oh yes, and I’m also adding sky-plane and sky-box support to the basic SceneManager to allow you to easily add a static plane/box around any camera rendered with that SceneManager with a sky texture on it. I haven’t worked out how to bend a texture around a sky box like Quake3 does yet (if anyone knows of any articles about this technique I’d be really interested – are they actually making a dome mesh out of it?) but I can at least do a simple cube-map for now.
Anyway, merry xmas to all and I’ll see you all in 2002.