The current generation of consumer graphics cards contains powerful pixel processing units capable of handling very complex operations at interactive rates. At the same time, the level of immersion in games has increased tremendously, requiring intricate, rich worlds to wow the gamers senses. Rendering the necessary level of surface detail directly with complex geometry is impractical even with the most powerful latest hardware.
This problem has spurred development of numerous techniques for rendering detailed surfaces in real-time which do not require rendering of the actual geometry. This presentation reviews several existing techniques for normal mapping, displacement mapping and parallax mapping in the context of games. Pros and cons of each approach are discussed in relation to their relevance to the game content creation pipeline and rendering.
Additionally, we present a novel algorithm for rendering complex geometric surfaces with perspective-correct details and soft self-occlusion based shadows under varying light conditions. This technique, titled parallax occlusion mapping, can be used effectively to generate an illusion of complex geometry exhibiting correct motion parallax as well as producing very convincing self-shadowing effects. It takes advantage of the per-pixel capabilities of the latest graphics hardware to compute all necessary quantities using the programmable pipeline. The applicability of this technique to arbitrary polygonal surfaces and its easy integration into existing art pipelines with support for standard normal mapping tools makes it highly relevant for game developers. The method takes advantage of the new features of the latest generation of graphics hardware as well as the next generation console hardware giving higher visual results fidelity and improved performance over other techniques. Additionally discussed is a continuous level-of-detail approach with smooth transitions for parallax occlusion mapping.
The advantages of this technique for game developers are also discussed, presenting a real-life case of integrating it into a game engine. The process of integrating parallax occlusion mapping into an existing engine is also presented, and we use a real case study of a successful shipping game engine for this task. The tools necessary to support addition of this technique into the art pipeline also receive some thought.