Ok, I’ve ended up slip-sliding into doing more work this week than I was really supposed to. Hmm - I guess I love my work far too much than is healthy. 😉 My excuse (which makes my wife roll her eyes) is that I’ve been picking off stuff that’s not that demanding, and it’s stuff I’ve wanted to add anyway. Well, here’s what you get from today’s commit: unified program definitions.
My wife was in need of a new mobile phone recently due to hers starting to become unreliable so we took a trip into town yesterday to sort one out. We’re both on contract (rather than pay-as-you-go) but they’d expired so we figured we might as well just arrange extended contracts and get new phones at the same time. Mine was getting a bit crusty too - I bought the cheapest tri-band phone there was in a hurry 3 years ago so I could use it on a short-notice trip to the US and haven’t changed it since - so I thought I’d take a look too.
Although it’s still the holidays, I decided to do a bit of tinkering today since there were a few things about the depth shadowmapping that had been bugging me. I’ve still yet to find a totally satisfactory biasing solution - this is of course a common factor in all depth shadowmapping algorithms, but I’d hoped to have some better results than I have, having implemented quite a few options including rendering back faces into the shadow texture instead of front faces, fixed and gradient-based biases, fuzzy depth comparisons, and a choice of either scaled linear or projective space depths.
See that? That was Christmas 2006. Whizzed by again, if you blinked you might have missed it and pondered quizzically where the extra inches around your waist came from. 😀Hope everyone had a good one - I certainly did, filled as it was with food, family and festive gifts. I received a couple of books that might interest the OGRE users out there, namely Modern C++ Design, which looks like it has some great patterns utilising C++ templates in interesting ways in it, and Texturing and Modeling: A Procedural Approach which covers a lot of theory on generating content procedurally which is a subject I’m quite interested in exploring over the next 12 months.
Ok, so the lighting and shadowing enhancements in Eihort are taking me a lot longer than I anticipated, due to a number of factors, including distractions from a number of areas including the OGRE web server, VS2005 SP1 issues, Xmas shopping and the like, but also due to things never being as simple as they should be 😉 Whilst you can see from the screenshot that self-shadowing with texture shadows is clearly working, there are all sorts of aspects that I’ve been considering which are often overlooked in the proof-of-concept demos of these sorts of things.
It seems this month that I’ve spent more time doing non-coding tasks than, well, coding tasks, which has been a little disappointing considering I wanted to progress much faster with the remaining Eihort features than I have. Well, such is life I suppose. One of the things that’s been yanking my proverbial chain lately has been reliability issues with our current dedicated host. Almost 2 years ago now (wow, has it been that long?
I switched the Ogre DNS to ZoneEdit a while ago because I’d been getting some resilience problems with the servers provided by my registrar. I also paid (ZoneEdit is free for the basic service) to have an extra server so that we had 3 DNS servers pointing at ogre3d.org, all in different continents. I thought that would be enough. Today, however, ns2.zoneedit.com ns3.zoneedit.com and ns17.zoneedit.com all went offline at the same time.
Argh. I downloaded and installed VS2005 SP1 yesterday, and all appeared to go well. I performed a bunch of builds yesterday (crucially, all release builds) and all was fine. Today, however, after making a lot of changes for better ANSI compliance and warning fixing, I wanted to test a debug version. And this is where the nightmares started. I now have a seemingly totally random case of debug builds refusing to locate the side-by-side assemblies for the debug C++ runtime library - it moans about a missing MSVCR80D.
I realise this has been reported by a lot of people already, but I had to link it here as a paragon of corporate cynicism. I can’t believe Sony actually thought they’d get away with trying to engineer a viral marketing campaign for the PSP using fake blogs and YouTube postings. They tried to wipe all trace of it from the net after it was exposed but of course someone has posted a copy.
I just finished integrating some new texture shadow projection types into Eihort. New this time are Uniform Focused and LiSPSM shadow projections, adapted from LordSteiner’s great patch. Most of the work was done early last week in fact, but I’ve been doing some refinement to make sure it was really ready for wider adoption. I changed the interfaces around a bit and made them a bit more configurable from the outside, and I also attacked some performance issues - I had also found that these two techniques were performing considerably worse than uniform and plane optimal shadows initially, more so than I would have expected.