$npx -y skills add scottstts/Threejs-Awesome-Graphics-Agent-Skills --skill threejs-image-pipelineBuild a deliberate final-image pipeline for advanced Three.js scenes. Use for depth, normal, albedo, and history ownership; GTAO or bent normals; bloom; eye adaptation; tone mapping; 3D LUT grading; effect-local render targets; and pass diagnostics.
| 1 | # Image Pipeline |
| 2 | |
| 3 | Use this skill only when composing several image-space systems or defining shared buffers. For one effect, load its atomic skill instead. |
| 4 | |
| 5 | Load: |
| 6 | |
| 7 | - `$threejs-screen-space-ambient-occlusion` for GTAO, bent normals, denoising, or AO application; |
| 8 | - `$threejs-bloom` for HDR extraction and bloom; |
| 9 | - `$threejs-exposure-color-grading` for metering, adaptation, tone mapping, LUTs, and output conversion. |
| 10 | |
| 11 | The pipeline must expose its signals and ordering. Do not install a pile of effects and tune the final frame blindly. |
| 12 | |
| 13 | ## Signal order |
| 14 | |
| 15 | ```text |
| 16 | scene HDR color + depth + normals + albedo where required |
| 17 | → lighting-related screen effects |
| 18 | → atmosphere/transparency composition |
| 19 | → bloom |
| 20 | → exposure |
| 21 | → tone mapping |
| 22 | → grading |
| 23 | → lens/presentation effects |
| 24 | → output conversion |
| 25 | ``` |
| 26 | |
| 27 | Read [references/production-image-pipeline.md](references/production-image-pipeline.md) |
| 28 | for four production pass graphs, their buffer/resolution contracts, and the |
| 29 | ownership boundaries between whole-scene and effect-local graphs. |
| 30 | |
| 31 | ## Rules |
| 32 | |
| 33 | - Tone-map once. |
| 34 | - Keep HDR bloom before tone mapping. |
| 35 | - Meter exposure from a small luminance target, not the final 8-bit screen. |
| 36 | - Separate direct and indirect light before applying bent-normal ambient tint when possible. |
| 37 | - Upsample low-resolution effects with depth/normal-aware weights. |
| 38 | - Build pass toggles and effect-only views before tuning. |
| 39 | - UI rendered in the same target needs an explicit protection strategy. |
| 40 | - Do not load all atomic post skills by default. Route only the effects actually requested. |
| 41 | |
| 42 | ## Routing boundary |
| 43 | |
| 44 | Use this skill when multiple image-space systems must share buffers, ordering, |
| 45 | or output ownership. For one isolated effect, use its atomic skill without |
| 46 | loading this coordinator. |