by Andreas Papathanasis
Technology was one of the major focus points of the programming team during the transition from Origins to Dragon Age II. After the art team presented us their vision for a rebooted art style, we spent a lot of time with them identifying the technology improvements that would best bring that art style forward.
In this post we’ll examine some of the base technology improvements to the engine. These improvements will be enjoyed by everyone who plays the game, regardless of whether they choose to play on PC with a DirectX 9 video card, PlayStation 3 or Xbox 360. On a subsequent post we’ll examine more advanced DirectX 11 technology that will be exclusive to higher end PCs.
Lighting is a crucial element for the visual appearance of any game. Regardless of how detailed and unique the base art is, a poor lighting system that fails to bring out that detail will make the game look worse overall. With this in mind we spent most of our research effort into new lighting techniques and tried to identify the one that best fits the levels we needed to create for Dragon Age II.
The lighting system we ended up with is based on an offline global illumination renderer that creates higher quality lightmaps than before. Global illumination means that light bounces in the scene are considered for the overall lighting. This simulates how lighting works in the real world.
Cave levels are a great fit for our new lighting system. Light beams coming in from cracks in the ceilings scatter light around the level for a more clean and realistic lighting overall, compared to our old lighting engine.
Lighting is also a great tool to convey emotion. From the smoke filled alleys of Lowtown to the highly contrasted lighting in Darktown or the Chantry – whenever I play the game I find myself unconsciously pausing to look around in the level and how lighting interacts with each scene.
Interesting terrain variation, dramatic vistas, impactful skies, a grand overall sense of scale are all important points for our level artists when laying out the outdoor areas of the game. We worked on more advanced terrain editing capabilities that allow more creative freedom when creating our exterior levels.
To complement the new terrain engine, our redesigned sky editing tools allow artists to easily create lit, moving layers of clouds that contribute a lot to the visual appearance of exterior levels. The team also worked on improving the water rendering technology. It now allows for physically lit water and realistic, accurate reflections from all objects in the scene:
Our offline global illumination renderer works great for static unmoveable objects, but one of our key goals with the technology was to make characters and other dynamic objects moving in the scene to have similarly high quality lighting as the levels. We implemented a system that ends up working really well, where characters pick up very similar lighting as the static geometry in the world near them. This makes creatures really merge in with their environments, get shadowed when they walk in shadowed areas, get brightly lit when they’re facing the sun, and be affected by all offline lights consistently as they walk through the level.
Our character lighting is complemented by our improved runtime shadow technology, which now supports self shadowing. Besides providing a more realistic look, self shadowing is also a good tool for cinematics to improve the impact of the scene by manipulating lights and shadows.
Overall, we feel that the technology changes have empowered our content creators to create clean, pretty, more consistent, very often visually striking areas that look and flow great throughout the game.
Next time we’ll cover more advanced DirectX 11 features of the engine, how they complement the base technology and how, while not required for enjoying the game itself, should improve the visual experience for players with higher end PCs.
Thanks to our lead environment artist, Ben McGrath, for capturing the screenshots in this post. The screenshots are taken from the DirectX 9 PC version of the game, but the visual output would be almost identical on consoles.