Well, it’s been something of a week - a short one at work, since Monday was a bank holiday, but an extremely busy one nonetheless. I was pretty bummed out early-to-mid-week, in part due to the departure of nfz, and in part because work just seemed to be mounting up (at work and for OGRE). There were a couple of serious bug reports with RC2 (Code::Blocks + STLport has problems, combining skeletal animation and pose animation was blowing up), and I now really have to take on the official tech review of xavier’s book that nfz was doing (I was doing it informally) which means stricter review deadlines to adhere to.
I was very sad to hear today that Jeff (nfz) has decided to stand down from the OGRE team for personal reasons; whilst it’s completely understandable, it’s a real blow since I’d really gotten used to having him around, he’s a reliable chap. At the moment that leaves only myself and Genva as truly active members of the OGRE team, the other team members are mostly dormant now. We’ll have to review the situation once 1.
As the US woke up this morning, the OGRE site was brought to its knees as a great horde descended on it, waving their pointy links menacingly. The dedicated server that runs the OGRE site from an environmentally controlled room in Dallas, TX wimpered and quite understandably, hid under the covers. It took some coaxing to get it to come out again. I had to do a quick on the fly reconfiguration of the web server to get it to scale a little better within its limits (mostly memory) and all should be well now - it’s still pretty heavily taxed, but burning a little cooler now.
I’d literally just finished doing all the legwork required to get RC2 out the door, and I decided to take a quick peek over a GameDev.net before getting a bite to eat - and incredibly the news was already posted there. I haven’t been doing any official publicity for 1.2.0 (beyond posting on our own site) yet since I thought it best to iron out all the RC wrinkles first, but word of mouth doesn’t take long on the Internet.
I’ve updated the skeletal animation sample to include a more interesting example from the Softimage|XSI samples. This model uses 2 bone weights per vertex rather than the single one on the robot which graced the demo before, and is much higher poly, plus the animations are motion captured (I think) so look rather swish. My only problem was making the animation loop, since it includes a translation element. I’ve pretty much got it, there’s a slight hiccup still but it’s probably as good as I’m going to get it right now.
I tell you, a game hasn’t made me laugh this hard for longer than I can remember - Psychonauts is simply pure genius. I’m not going to get too specific in case you play it yourself (and by God, you should), because some of the comedy impact is in the surprise factor, but it’s just so laugh-out-loud funny. It pains me that so few people seem to have bought it in the US, so all I can say is that if you appreciate great writing, superb imagination and being confronted by something so utterly bonkers that it makes you chuckle for several days afterward just thinking about it, you must buy this game now.
OGRE 1.2.0RC2 will be a few more days, Jeff’s been working hard on the new material script compiler and it really should be a part of what should be the final RC. It uses the same script compiler framework as the compositor scripts use, giving you more flexibility than the existing line-based script parser. Today I fixed a couple of small bugs, but spent most of the time doing some RL (real life) things like pressure cleaning the patio.
Well, I resolved the issues with the HDR compositor and added a slightly nicer scene for it to be displayed in. I sped things up a bit by dropping down to 16-bit floating point targets, and I discovered that FBO (or at least my implementation of it) doesn’t really like the single-channel luminance floating point texture, so I switched to a full RGB texture instead. The final problem was pointed out by nfz - I just hadn’t bound the samplers properly in the material script for GLSL, something I didn’t realise you had to do, but I should have read the manual.
Well, I finished the first pass of the HDR compositor - I wrote it in Cg to begin with, but in the end I converted it to HLSL and GLSL because I found a very annoying trait of the Cg compiler is to burn up temporary registers way too fast. For example, when performing the ‘bloom’ passes, I switched to a 15-sample gaussian blur, and found that the Cg compiler decided to try to offset all the samples into temporary registers first, before doing all the texture lookups.
After wrestling with some annoying Cg problems yesterday, it occurred to me that trying to figure out where problems exist in my HDR compositor sequence was going to be a total pain the arse, since the final result is many, many render-to-textures (RTTs) later. For that reason I decided to spend a good portion of this evening adding a RTT debug view to the compositor demo. It’s already proved to be very handy, since I’d made an error in one of the early stage shaders which would have been difficult to track down without examining each step of the sequence.