FSR1 spatial + FSR2/3-style temporal upscaling for the three.js WebGPURenderer.
WebGPU-only — open in Chrome/Edge 113+ (or a browser with WebGPU enabled). Each demo renders the scene at a lower resolution and upscales it back to full size.
post.outputNode = upscaleScene(scene, camera).
The whole upscaler as one node in a THREE.PostProcessing graph.
upscaleScene(...).mul(vignette) — showing it lives in a post graph.
upscale(...) node — one TSL post graph, effects and all.
recurrentDenoise)
fights FSR3's jitter. Not part of the library.
upscale() node —
transparents and particles authored as an in-graph coverage pass. Toggle
it to A/B the ghost trails.
dispatchGuides() / dispatchUpscale() frame, with
the published dilated motion, disocclusion, and depth guides sampled live
as TSL texture nodes.
temporalGuides() publishes the
products into the post graph, a toy effect tints disoccluded pixels
pre-upscale, and upscale({ guides }) shares one computation
across both — the split frame, declaratively.