Game Development Reference
Figure 3.7. Storage requirements of the CG-buffer compared to a standard deferred
G-buffer. Only the size of the visibility data grows with supersampling. We rendered
the Sponza scene at 1 , 280 × 720 pixels.
We have analyzed the memory consumption of our method, compared to super-
sampled deferred shading. We save storage by essentially deduplicating shading
data in the G-buffer. However, as a shading sample might not coincide with
any visibility samples on the surface, we cannot reconstruct the surface positions
based on a subpixel depth value. While other solutions are possible, we assume
that we are forced to store the view space position of each shading sample.
We assume that the ground truth deferred method uses 12 bytes per subsample
in the G-buffer: 32 bits for depth-stencil and two RGBA8 textures for normals
and material information. In fact, most modern deferred renderers use typically
more bytes per subsample. The memory footprint of our CG-buffer can be divided
into per-visibility and per-shading sample costs. In the former we need to store
an integer pointer besides the 32-bit depth-stencil. We need 16 bytes per shading
sample: the view positions are packedinto8bytes(16bitsfor x
y and 32 bits
for z ), and we store the same normal and material information.
If the shading rate is one and there is no multisampling, our method uses twice
as much memory as conventional techniques. However, the number of shading
samples does not scale with the supersampling resolution.
memory consumption matches the supersampled G-buffer's, and we save signif-
icant storage above this sample count. Our measurements on the Sponza scene
are summarized in Figure 3.7.
In this chapter we presented a decoupled deferred shading method for high-quality
antialiased rendering. To our knowledge this is the first deferred shading method