Skip to content

GTAONode: smooth noise with temporal accumulation - #33918

Draft
marcofugaro wants to merge 3 commits into
mrdoob:devfrom
marcofugaro:gtao-temporal-accumulation
Draft

GTAONode: smooth noise with temporal accumulation#33918
marcofugaro wants to merge 3 commits into
mrdoob:devfrom
marcofugaro:gtao-temporal-accumulation

Conversation

@marcofugaro

Copy link
Copy Markdown
Contributor

Related issue: #33915

Description

Originally implemented in #33663, this PR adds a temporal reprojection accumulation pass to smooth out the noise.
This is basically a barebones version of TemporalReprojectNode with some assumptions related to the GTAO that make more performant for this usecase, like a 3×3 min/max clamp that allows us to have 12 single-channel fetches instead of the 24. Also it has no need for previous-frame depth/normal buffers.

Since it's custom fit, I decided to add it as a .temporalAccumulation property of GTAONode. Alternatively a GTAOAccumulationNode can be created.

I also renamed the .useTemporalFiltering to a more appropriate .jitter to avoid any confusion with the temporal accumulation.

DEV: https://raw.githack.com/mrdoob/three.js/refs/heads/dev/examples/webgpu_postprocessing_ao.html
PR: https://raw.githack.com/marcofugaro/three.js/refs/heads/gtao-temporal-accumulation/examples/webgpu_postprocessing_ao.html

DEV PR
Screenshot 2026-07-01 at 00 49 34 Screenshot 2026-07-01 at 00 49 43

@Mugen87

Mugen87 commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Sorry, but there is currently no intention to go that suggested route.

Custom and embedded temporal accumulations in effect nodes is in some sense the last resort that we should only choose if there is no other way. Our primary goal is to reuse the denoise and tempral accumulation nodes for SSGI/AO/SSR.

@Mugen87
Mugen87 marked this pull request as draft July 1, 2026 07:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants