The current work queue…

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

I know people are generally interested in what I’m working on, so here’s an update. I recently completed an upgrade to the OGRE .mesh file format (the binary version, the XML has not changed). This allows more flexible vertex declarations and buffer layouts, as supported internally by the engine for a while, but the binary mesh format was more simplistic previously. It also allows you to precalculate edge lists (for stencil shadows) and tangent buffers (for normal maps), which saves you a bit of load time. As usual, the OgreMeshUpgrade tool allows you to upgrade your meshes automatically, and it includes a buffer reorganisation feature where you can manually or automatically alter the vertex layout to a more optimal form if you like.

I’m currently working on some Frustum updates; firstly, I’m enhancing the reflection capability so that instead of making the reflection based on a fixed plane, you can link it to the new MovablePlane class, which is a subclass of Plane which also implements MovableObject, so it can be attached to a SceneNode. That means you can have the reflection automatically change as you manipulate the scene graph.

Secondly, I’m adding the ability to do ‘Oblique Depth Projection’, which in laymans terms is a way to fudge the near plane so that it clips to an arbitrary plane. This is very useful for doing reflection / refraction maps, since you always want to clip the rendered geometry to the reflection / refraction plane. Whilst you can do this using user clip planes, they are not supported on all cards and are sometimes unaccelerated. Big thanks to Eric Lengyel for posting an implementation of this technique on his site.

That should be done in the next couple of days, then I want to investigate offering a faster but less accurate spherical interpolation method on Ogre’s skeletal animation implementation (as an option). Then, there are a bunch of patches to apply from the community. That’ll form the basis of Ogre 0.15, before I then go on to look at the whole resource area for the push toward 1.0.