Bethesda's Morrowind was one of the "big three" computer roleplaying games released in 2002, along with Dungeon Siege and Neverwinter Nights. Sporting an advanced engine many high end systems buckled under the pressure and gamers delighted at what they saw. The game went on to win multiple awards and warranted two expansions and re-releases. Bethesda is close to finishing the latest in the Elder Scrolls series: Oblivion and its renderer looks to be no push over either even for today's monster cards if you choose to pump up the detail settings. Being released for the PC and the Xbox 360 we asked the developers what was under the hood graphically as well as some of the inroad they have been doing with regards to artificial intelligence and physics. Gavin Carter was kind enough to answer our questions for the Beyond3D readership.
Could you discuss the dynamic shadow technique you're using? They appear to be a form of shadow maps.
They are a form of shadow maps, though the technique we’re using currently differs from the one we showed at E3. Our initial shadow tests were done using cube maps on every surface, but after extensive testing we found them to be too slow overall to use as a general solution. We have switched to doing single shadow maps directed at characters. The system supports full self-shadowing and we do multiple samples and depth comparisons to provide a soft-shadowing effect. The net effect we’ve achieved is a system general enough to handle Oblivion’s diverse environments while still providing great visuals and good performance.
Are your dynamic shadow implementation a feature across all supported systems, perhaps scaling the detail on low-end machines, or are they a high-end only checkbox? How would you describe the qualitative jump from Morrowind?
They will be supported across all systems. We will have options to toggle features like self-shadowing and the softening effect, as well as to adjust the number of characters receiving shadows to improve performance for lower end machines. The jump from Morrowind is significant. Since we aren’t doing stencil shadows anymore, our current system is more accurate while using less fill cost. Also, shadows use world space coordinates instead of Morrowind’s screen space coordinates, allowing us to do more dramatic effects like fading out and softening the shadows over distances.
Are you using any kind of pre-computed shadow technique for static shadows? If so, how well will they blend with the dynamic shadows?
We are not using any pre-computed techniques. The main reasons are that pre-computed shadow maps don’t mesh well with our dynamic time-of-day system. Also, relying on a completely dynamic solution allows much more flexibility for the artists to create whatever environment they want in an entirely WYSIWYG work environment.
In a recent interview you have revealed Oblivion's engine is capable of sophisticated lighting across surfaces (normal mapping and parallax mapping, for instance). How would you characterise your experience with parallax mapping and its junction and texture warping problems?
We avoid texture warping on high-end cards by doing the eye vector calculation per-pixel instead of per-vertex. Some amount of texture warping is inherent to the system no matter what card you’re using, but overall we find it to be virtually a non-issue in game unless you’ve got the camera mashed up against the textures. The artists quickly learned the limits of range in the displacement for what looks good and what looks bad. T-junctions are a problem for just about any lighting calculation, so these are mostly avoided in the art creation stage by being smart about how we construct objects.