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.
As one of the many paying customers who gets constantly irritated by DRM software, I was glad to hear the news that the infamous copy protection software ‘Starforce’ has been abandoned by Ubisoft, one of their biggest customers. Starforce is particularly vilified because, like the Sony BMG ‘rootkit’, it installs software on your machine which remains even after you uninstall the games it protects, and which introduces horrendous security vulnerabilities while it’s at it (basically it gives any software running on your machine full privileges, opening the door wide open for torjans and other nastiness).
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.
Yesterday was our wedding anniversary, and on the whole it was a very nice day. We both had the day off, chilled quite a bit in the morning, and went out for lunch to a place on one of the many quays / piers in St Peter Port (my home town) called SaltWater - it’s a little pricey but the food is always very good and it has a nice atmos, and hey, an anniversary is as good a reason as any to treat ourselves.
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.