Full-stack-skills threejs-renderers
Core rendering pipeline for three.js using WebGLRenderer and WebGPURenderer, canvas sizing, device pixel ratio, color space and tone mapping, output encoding, WebGL/WebGPU render targets, Info statistics, and addon overlay renderers (CSS2D/CSS3D/SVG). Use when tuning the draw loop, performance, or switching WebGPU vs WebGL; for EffectComposer passes use threejs-postprocessing; for XR session lifecycle use threejs-webxr; for shader graphs use threejs-node-tsl.
git clone https://github.com/partme-ai/full-stack-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/partme-ai/full-stack-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/threejs-skills/threejs-renderers" ~/.claude/skills/partme-ai-full-stack-skills-threejs-renderers && rm -rf "$T"
skills/threejs-skills/threejs-renderers/SKILL.mdWhen to use this skill
ALWAYS use this skill when the user mentions:
orWebGLRenderer
creation,WebGPURenderer
,setSize
,setPixelRatiosetAnimationLoop- Color management:
,outputColorSpace
, exposure-like behavior via renderer propertiestoneMapping
,WebGLRenderTarget
, MRT, readback, or render-to-texture setup at renderer levelWebGLCubeRenderTarget
(Info
,render
,triangles
) for profiling;calls
/ storage textures when working from docs indexCanvasTarget
IMPORTANT: this skill vs neighbors
| Topic | Use skill |
|---|---|
| Fullscreen passes, bloom, SSAO, composer chain | threejs-postprocessing |
VR/AR session, , hand models | threejs-webxr |
| Node-based frame graph / TSL post stack | threejs-node-tsl + renderer enablement |
| Loading assets | threejs-loaders |
Trigger phrases include:
- "WebGLRenderer", "WebGPURenderer", "setPixelRatio", "toneMapping", "WebGLRenderTarget"
- "渲染器", "像素比", "色调映射", "离屏渲染"
How to use this skill
- Choose API:
for widest compatibility;WebGLRenderer
when targeting WebGPU and node/TSL stack per project rules.WebGPURenderer - Size: match drawing buffer to canvas CSS size ×
with a sane cap (performance).devicePixelRatio - Color: set
/outputColorSpace
consistently with textures and materials (cross-link threejs-textures, threejs-materials).toneMapping - Loop: prefer
for WebXR-friendly loops; otherwisesetAnimationLoop
.requestAnimationFrame - Render targets: pick
vs cube/3D/array variants per environment/reflection needs; document dispose when recreating.WebGLRenderTarget - Overlay UI: import
/CSS2DRenderer
from addons; sync size with main renderer.CSS3DRenderer - Profiling: read
in dev builds only; explain cost of high pixel ratio and overdraw.renderer.info - WebXR hook: enable XR on renderer but delegate session to threejs-webxr.
See examples/workflow-renderer-resize.md.
Doc map (official)
| Docs section | Representative links |
|---|---|
| Core Renderers | https://threejs.org/docs/WebGLRenderer.html |
| WebGPU | https://threejs.org/docs/WebGPURenderer.html |
| Render targets | https://threejs.org/docs/WebGLRenderTarget.html |
| Core PostProcessing (class) | https://threejs.org/docs/PostProcessing.html |
| Addons renderers | https://threejs.org/docs/CSS2DRenderer.html |
More class links: references/official-sections.md.
Scope
- In scope: Renderer construction, sizing, color/tone, targets, Info, addon CSS/SVG renderers, high-level XR enable only.
- Out of scope: Individual composer passes (threejs-postprocessing); XR input (threejs-webxr); file IO (threejs-loaders).
Common pitfalls and best practices
- Uncapped DPR burns fill rate; cap
on dense scenes.setPixelRatio(Math.min(devicePixelRatio, 2)) - Mixing sRGB textures with wrong
causes washed or crushed blacks.outputColorSpace - Forgetting
on render targets and full-screen quads leaks GPU memory on hot reload.dispose()
feature set moves quickly—always cite current docs version note in answers.WebGPURenderer
Documentation and version
WebGLRenderer, WebGPURenderer, and color-management defaults evolve across releases. Use the Renderers section of three.js docs for the user’s three.js line; WebGPU and node stacks may require newer minors—link class pages rather than memorizing constructor defaults.
Agent response checklist
When answering under this skill, prefer responses that:
- Link official renderer or render-target pages (
,WebGLRenderer
, etc.).WebGLRenderTarget - Relate
/outputColorSpace
to threejs-textures and threejs-materials when color looks wrong.toneMapping - Point XR session details to threejs-webxr after
is mentioned.renderer.xr.enabled - Mention
for render targets and render lists on teardown or hot reload.dispose() - Cite Addons → Renderers (
, …) when overlays are in scope.CSS2DRenderer
References
- https://threejs.org/docs/WebGLRenderer.html
- https://threejs.org/docs/WebGPURenderer.html
- https://threejs.org/docs/#Renderers
- https://threejs.org/docs/Info.html
Keywords
English: webglrenderer, webgpurenderer, rendertarget, pixelratio, tonemapping, outputcolorspace, css2d, css3d, three.js
中文: WebGLRenderer、WebGPU、渲染目标、像素比、色调映射、输出色彩空间、渲染器、three.js