Game Development Reference
Classic deferred shading
Decoupled deferred shading
Figure 3.3. The G-buffer stores shading data at full supersampled resolution before
shading and resolving. We introduce a visibility buffer that references shading data in
compact linear buffers. Due to our shading reuse scheme, the size of the compact buffers
does not scale with the supersampling density.
Compact geometry buffer. Instead of trying to use reconstruction filters or sparse
shading of the supersampled G-buffer, we can avoid any shading and memory
consumption overhead by not storing redundant shading data in the first place.
We address this problem with a novel data structure, the compact G-buffer ,a
decoupled storage for deferred shading. It has the same functionality as the G-
buffer, storing the inputs of shaders for delayed evaluation. However, instead of
storing this information in the framebuffer, we collect shading samples in compact
linear buffers. The contents of the framebuffer are purely visibility samples ,each
sample storing its depth value and a reference to a shading sample in the linear
buffers. We compare this data layout to the conventional G-buffer in Figure 3.3.
Akin to classic deferred shading, our methods can render images in three main