SVGF for AO

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 color AO 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 color AO (ao image) written by shader
    • color AO moment data (variance image) written by shader
    • prior frame’s depths, normals, and mesh IDs done on host side between frames

Temporal accumulation: same #

svgf_for_ao_1e15ec4707afe0db8df5f93739d9801853a9749b.svg
  • where svgf_for_ao_23860814366c316cd646de9c761949e53ed6fc30.svg 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:

  • svgf_for_ao_e9b3fd7d8ed596377da5c1bb14f15570c42c67c5.svg = first raw moment (luminance AO) = mean: svgf_for_ao_194d5281a17d1066448104e40bac457a8a13bc62.svg
  • svgf_for_ao_d3dc5a5b3586d48832503b60abc1b58081a71cdf.svg = second raw moment (luminance AO) = variance: svgf_for_ao_31c6cb437c866c6cf92059a171061648fb3ed2fa.svg
  • svgf_for_ao_100379d352e2fbbcf0e2ee390817429b74a90867.svg = integrated mean
  • svgf_for_ao_7d9adfa75f00e92880709e20e279faac3e185a70.svg = integrated variance

Temporal variance (svgf_for_ao_93faf6ce55120d29268fbf0e3a978f1997391a1c.svg = variance): svgf_for_ao_bf2118a29f02599cbbb8d7cead397c0f5399c77a.svg

also do the 7x7 filter if no variance is a vailable that is accumulated over more than 4 frames

Edge-avoiding à-trous wavelet transform: same #

Weight functions: same #

Calendar January 13, 2023 (Updated October 22, 2023)