Ah, finally got it working. The diagnosis was complicated by the fact that I thought GL wasn’t working, but in fact it was - it’s just the issue with the slightly faulty projection made it look like it wasn’t. The D3D9 problem was that I forgot I had to compensate for the fact that Ogre uses right-handed coordinates, instead of the left-handed ones used by D3D normally. Once I knew it was just D3D this didn’t take too long to work out!
I don’t often comment on news and current events in my blog - I think there’s enough of that elsewhere on the web - but in this case I make an exception, simply because of the extreme reaction it has evoked within me. I’m talking about the recent verdict in the Kodak vs Sun case, of course, in which Kodak has somehow managed to convince a court that they own the ‘invention’ of letting software components communicate in order to ask each other for ‘help’.
Well, I have my reflection enhancements done, so reflections using dynamic planes attached to SceneNodes works nicely now. Oblique depth projection is SO nearly working - right now it’s clipping perfectly in all cases except where the camera pitches relative to the plane; I’m not sure why that is right now. I’ve been over my calculations multiple times and they all look fine, but clearly I’ve made a mistake somewhere.
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.
I’m back, again, this time from a 2-week break in Canada, which I have to say was awesome. The Rockies rank among my favorite places in the world - enormous open spaces, magnificent scenery that just makes you gawp - I could have stayed another 2 weeks, although after all the hiking and (especially) the horse riding I was certainly quite sore! It was great to get away from all the stresses of the modern world for a while, no deadlines, no rush, and yes, no computer or TV.
I’m back, and it was fun - although more fragmented than previous years apparantly since there was another conference in the Docklands this year running at the same time. Got to see quite a few games, chat to lots of people, flash an OGRE T-Shirt around all day (which got recognised a few times) and exchange business cards. Argonaut sent the largest team by far, but there were people from loads of other UK and European dev companies there.
Good news - nVidia have confirmed that the issue I’ve reported in the 61.77 drivers is fixed in the next (unreleased) revision, so I can stop worrying about that it seems. Phew! Secondly, as you can see from the Ogre website, we now support GLSL as well as all the other shader formats we’ve supported since 0.13. You want shaders, sir? We got em, in every shape, size and colour, so we ‘ave.
Isn’t it great how everything never goes to plan? I’m reminded of that cigar-chewing philosopher, Hannibal from the A-Team, and wonder how the hell it is that his plans always ‘come together’ despite them being utterly implausible. Smug git. 😀 My current problem is the nVidia 61.77 drivers, which have introduced an extremely annoying problem in D3D9 - when rendering geometry with more than about 4000 faces, significant flickering can be observed in the final ¼ of the triangles, as if these triangles are not being drawn every frame.
There’s a new 3D engine database in town, and this one looks very professional indeed. It includes a huge list of engines (commercial, open-source and otherwise), is really well presented, allowing users to review and rate the engines they find there. OGRE is listed, and is doing pretty darned well in the ratings, which obviously I’m very happy about. We’ve been in the top 10 (based on user ratings) consistently since it was opened, and as of the time of writing we’re at #2, above most commercial engines and second only to Source.
I plan to release the 0.14.1 maintenance release of Ogre tomorrow - I got some time last week to work through some patches, and there are quite a few fixes that can be had from this and other updates over the past couple of months. Contract work is going well, I cracked a particular challenge that I’ve been building up to for a few weeks, and which I was a little apprehensive about being able to pull off well - but in the end after a few u-turns, experiments and late nights, it all worked out nicely and I’m really quite chuffed with the result now.