Implement a production GTAO path in Three.js. Use for half-resolution horizon sampling, reversed-depth reconstruction, bent-normal encoding, full-resolution bilateral reconstruction, environment-light application, contact grounding, and halo diagnosis.
Start a fresh conversation. Replace the highlighted placeholders.
Use threejs-screen-space-ambient-occlusion to design and implement a production GTAO path for [Three.js renderer code], including depth/normal reconstruction, denoising, indirect-light application, and halo diagnosis.
Required inputs
[Three.js renderer code]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: threejs-screen-space-ambient-occlusiondescription: Implement a production GTAO path in Three.js. Use for half-resolution horizon sampling, reversed-depth reconstruction, bent-normal encoding, full-resolution bilateral reconstruction, environment-light application, contact grounding, and halo diagnosis.
Screen-Space Ambient Occlusion
AO estimates missing ambient visibility. It must modulate indirect lighting, not repaint all scene color with a dark multiply.
Workflow
Verify linear depth and view-space normals.
Reconstruct view position consistently.
Sample horizon visibility in a controlled radius.
Estimate AO and optional bent normal.
Denoise with depth/normal-aware filters.
Apply to indirect diffuse and environment response.
AO remains strong at distances where its world radius is subpixel;
bent normals are treated as ordinary geometric normals;
the implementation claims temporal accumulation even though this path has none.
Routing boundary
This skill owns GTAO gathering, bent normals, denoising, and AO application.
Use $threejs-image-pipeline only when its depth/normal buffers or pass order
must be coordinated with other image-space systems.