SVGF for AO
Notes about how SVGF can be used for Ambient Occlusion .
Regarding the original reconstruction Pipeline:
Only the AO image will be taken as input, only the reconstruction filter has to be performed, all other steps are not relevant.
Filter #
Input:
-
1 spp path-traced
colorAO buffer set on cpu side -
g buffer (this frame)
- depth set on cpu side
- object-normals do we have this?
- world-space normals do we have this?
- mesh ID do we have this?
- screen-space motion vectors (pixel motions) maybe no texture but evaluated in shader
-
history buffers
- temporally integrated
colorAO (ao image) written by shader colorAO moment data (variance image) written by shader- prior frame’s depths, normals, and mesh IDs done on host side between frames
- temporally integrated
Temporal accumulation: same #
- where
is not the final color from last frame but the color history, which is the result of the first filter iteration last frame
Also after backprojecting position to last frame do the 2x2/3x3 filter thing.
Variance estimation: same #
Some names:
= first raw moment (
luminanceAO) = mean:= second raw moment (
luminanceAO) = variance:= integrated mean
= integrated variance
Temporal variance ( = variance):
also do the 7x7 filter if no variance is a vailable that is accumulated over more than 4 frames