mcpField
T
threejs-screen-space-ambient-occlusion

threejs-screen-space-ambient-occlusion

github.com/scottsttsCreative & media94697 installsUpdated 6d ago
Repository

About threejs-screen-space-ambient-occlusion

A Three.js skill for screen-space ambient occlusion that estimates ambient visibility and applies it to indirect lighting. It covers GTAO gathering, bent normals, denoising, and AO application.

Key features

  1. 01Linear-depth and view-normal validation
  2. 02View-position reconstruction
  3. 03Horizon-visibility sampling
  4. 04Depth- and normal-aware denoising
  5. 05AO application to indirect lighting

Use cases

  1. 01Implementing GTAO in a Three.js scene
  2. 02Denoising screen-space AO
  3. 03Preserving direct light and emission
  4. 04Coordinating AO with image-space passes

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/scottstts/threejs-awesome-graphics-agent-skills --skill threejs-screen-space-ambient-occlusion

After installing, type/threejs-screen-space-ambient-occlusionin Claude Code to confirm it loaded.

Bundled filesagents/openai.yamlreferences/gtao-bent-normal-pipeline.md

Details

From the project README

Screen-Space Ambient Occlusion

AO estimates missing ambient visibility. It must modulate indirect lighting, not repaint all scene color with a dark multiply.

Workflow

  1. Verify linear depth and view-space normals.
  2. Reconstruct view position consistently.
  3. Sample horizon visibility in a controlled radius.
  4. Estimate AO and optional bent normal.
  5. Denoise with depth/normal-aware filters.
  6. Apply to indirect diffuse and environment response.

Read references/gtao-bent-normal-pipeline.md.

Failure conditions

  • direct light and emission are darkened;
  • radius is specified only in pixels;
  • foreground silhouettes cast thick screen-space halos;
  • depth discontinuities are blurred together;
  • 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.

Comments

Markdown supported