Home  |  News  |  Reviews  | About Search :  HardWare.fr 



ProcessorsMotherboardsGraphics CardsMiscellaneousHard DisksSSD
Advertise on BeHardware.com
Review index:
Understanding 3D rendering step by step with 3DMark11
by Damien Triolet
Published on January 27, 2012

Stage 5: shadows
3DMark 11 can generate shadows linked to directional lights (the sun or the moon) and spot lights (not present in test 3). In both cases shadow mapping is used. This technique consists in projecting all the objects in the scene from the point of view of the source of light and only retaining a Z-buffer which is then called a shadow map. In contrast to what its name (shadow map) might lead you to think, a shadow texture is not applied to the image.

A shadow map shows, for each of its points, the distance from the light source at which objects are in shadow. A pixel’s position is then simply cross checked with the information in the shadow maps to ascertain whether it’s lit or in shadow.

For directional light sources, 3DMark 11 uses a little variant: cascaded shadow maps (CSM). Given the immense area lit by the sun, it’s difficult, even at very high resolution (4096x4096) to get enough precision for shadows, which tend to pixelise. CSMs provide a solution to this by working with several levels of shadow maps which focus on a progressively smaller area in the view frustum, so as to conserve optimal quality.

In Extreme mode 3DMark 11 creates five shadow maps of 4096x4096 which are generated from 339 rendering commands of which 142 use tessellation. This represents one of the largest loads of the scene. The darker an object is, the closer it is to the light source:


The scene from the sun: [ CSM 1 ][ CSM 2 ][ CSM 3 ][ CSM 4 ][ CSM 5 ]


Although it’s possible to calculate all these shadow maps first followed by the lighting afterwards, Futuremark has decided to interleave them, which probably makes light processing a little less efficient but avoids putting excessive demands on memory space. At any given moment then, there is never more than a single shadow map in the video memory, which is partly why 3DMark 11 can still run pretty well on graphics cards equipped with just 768 MB, or even 512 MB.

As with the creation of the g-buffer, we’re talking about geometric passes here given that the whole scene must be taken into account, or at least a subset of it for the lower level CSMs. Tessellation is also used as the shadows must correspond to the objects that make them and this can represent an enormous processing load. In contrast to the pass for the creation of the g-buffer however, no colour data is calculated, only depth. Since Doom 3 and the introduction of the GeForce FXs, GPUs have been able to increase their throughput to a great extent in this simplified rendering mode.

Note this exception: objects such as vegetation, generated from false geometry, namely alpha tests, are not processed in this fast mode as pixels must then be generated so that they can be placed in the scene.

A few stats:

Rendering times: 22.6 ms (17.9 %)
Vertices before tessellation: 3.35 million
Vertices after tessellation: 8.91 million
Primitives: 8.50 million
Primitives ejected from the rendering: 5.17 million
Pixels: 83.67 million
Elements exported by the pixel shaders: 24.03 million
Texels: 416.66 million
Instructions executed: 725.13 million
Quantity of data read: 50.5 MB
Quantity of data written: 0.0 MB (the depth data isn’t taken into account)

<< Previous page
Stage 4: antialiasing

Page index
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14
Next page >>
Stage 6: primary lights  




Copyright © 1997- Hardware.fr SARL. All rights reserved.
Read our privacy guidelines.