Deferred Attribute Interpolation for Memory-Efficient Deferred Shading
Proceedings of the ACM SIGGRAPH Symposium on High Performance Graphics 2015, to appear
Crop of an image rendered at a resolution of 3840×2160 with 8 times MSAA. Our method is able to compress the size of the geometry buffer to 30% of the deferred shading G-Buffer using 20 bytes per sample. We store a visibility buffer which references triangles stored in a triangle buffer. The image on the left shows the number of shader invocations per pixel. On the right side, the number of visibility samples referencing the same triangle data is shown.
In this work we present a novel approach to deferred shading suitable for high resolution displays and high visibility sampling rates. We reduce the memory costs of deferred shading by substituting the geometry buffer with a visibility buffer that stores references into a triangle buffer. The triangle buffer is populated dynamically with all visible triangles which is compatible with the use of tessellation. Stored triangles are represented by a sample point and screen-space partial derivatives. This representation allows for efficient attribute interpolation during shading and gives shaders knowledge about the partial derivatives of all attributes. We show that the size of the visibility buffer can be further decreased by storing a linked list of visibility samples per pixel. For high-resolution displays we propose an extension of our algorithm to perform shading at reduced frequency, allowing us to reduce the sampling rate for computationally expensive, but low-frequency signals such as indirect illumination.