Understanding 3D rendering step by step with 3DMark11
by Damien Triolet
Published on January 27, 2012
Stage 3: ambient occlusion
The lighting in 3DMark 11 tries to get as close as possible to the principle of global illumination (radiosity, ray-tracing and so on), which is very heavy on resources but which takes refractions and reflections and therefore indirect illumination, (ie. the light reflected by any object in the scene) into account. To get close to this type of rendering, Futuremark uses various simulated effects:
- A directional light coming from the ground and numerous fill lights that simulate the sunlight transmitted indirectly from the ground and surrounding objects. We’ll cover this further when we come to lighting passes.
- An ambient occlusion texture that simulates soft shadows generated by the deficit of indirect light, which can’t be represented by the first effect (not precise enough). Here’s what it looks like:
Ambient occlusion, written to an RT in R8_UNORM (8-bit integer) format is calculated from the Depth Buffer and normals in such a way as to take account of all the geometric details, even those simulated from bump mapping as is the case in the HDAO from AMD that is used in several games. With the Extreme preset, 5x6 samples are selected with a random parameter and used to determine ambient occlusion. You can find more detail on this subject in our report on ambient occlusion.
A few stats:
Rendering times: 2.3 ms (1.8%) Vertices before tessellation: 6 Vertices after tessellation: - Primitives: 2 Primitives ejected from the rendering: 0 Pixels: 2.59 million Elements exported by pixel shaders: 2.59 million Texels: 78.80 million Instructions executed: 626.23 million Quantity of data read: 73.3 MB Quantity of data written: 3.0 MB