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



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

Stage 4: antialiasing
As deferred rendering isn’t directly compatible with standard MSAA type antialiasing, notably because the lighting isn’t calculated during geometry processing, Futuremark had to set up an alternative technique. It consists in the creation of a map of edges which is used to filter them during the calculation of lighting, as MSAA would have done:


Up until here, all the RTs were rendered with MSAA 4x antialiasing as Futuremark opts not to use post processing antialiasing such as FXAA and MLAA, provided by NVIDIA and AMD for video games developers.

MSAA isn’t however natively compatible with deferred rendering, which is only designed to calculate lighting once per pixel and therefore ignores the samples that make it up. One rather rough and ready approach would be to switch, at this moment, to something similar to super sampling, which is facilitated by DirectX 10.1 and 11. That would however mean calculating lighting at 3840x2160, would waste a lot of resources and would work against the very definition of deferred rendering.

Futuremark went for something else, a hybrid between MSAA and post-processing. Like post-processing, it consists of using an algorithm capable of detecting the edges that need to be smoothed using the g-buffer data. Although not perfect (that would be too resource heavy), this algorithm does a good job to detect those edges that are external to objects (there’s no need to filter internal edges).

This RT, in R8_UNORM (8 bits integer) format, which contains the edges detected will be used during all the lighting passes to come to mark out the complex pixels that require particular attention. Dynamic branching in the pixel shaders enables calculation of the value of the mix of the four samples, as would have been the case with a standard use of MSAA.

At the same time the RT in which the image is constructed and which only contains the sky up until this point, as well as the Depth Buffer, in MSAA 4x format at first, can be filtered here as the additional information they contain will not be of any use hereafter. The RTs which contain the diffuse and specular components of pixel colours must however be conserved in MSAA 4x format, as the additional samples they contain will be required in the calculation of complex pixels.

A few stats:

Rendering times: 1.4 ms (1.1 %)
Vertices before tessellation: 3
Vertices after tessellation: -
Primitives: 2
Primitives ejected from the rendering: 0
Pixels: 2.07 million
Elements exported by pixel shaders: 6.22 million
Texels: 39.43 million
Instructions executed: 185.44 million
Quantity of data read: 182.3 MB
Quantity of data written: 9.9 MB

<< Previous page
Stage 3: ambient occlusion

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




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