SKILL.md
When to use this skill
ALWAYS use this skill when the user mentions:
WebGLRendererorWebGPURenderercreation,setSize,setPixelRatio,setAnimationLoop- Color management:
outputColorSpace,toneMapping, exposure-like behavior via renderer properties WebGLRenderTarget,WebGLCubeRenderTarget, MRT, readback, or render-to-texture setup at renderer levelInfo(render,triangles,calls) for profiling;CanvasTarget/ storage textures when working from docs index
IMPORTANT: this skill vs neighbors
| Topic | Use skill |
|---|---|
| Fullscreen passes, bloom, SSAO, composer chain | threejs-postprocessing |
VR/AR session, XRButton, 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:
WebGLRendererfor widest compatibility;WebGPURendererwhen targeting WebGPU and node/TSL stack per project rules. - Size: match drawing buffer to canvas CSS size ×
devicePixelRatiowith a sane cap (performance). - Color: set
outputColorSpace/toneMappingconsistently with textures and materials (cross-link threejs-textures, threejs-materials). - Loop: prefer
setAnimationLoopfor WebXR-friendly loops; otherwiserequestAnimationFrame. - Render targets: pick
WebGLRenderTargetvs cube/3D/array variants per environment/reflection needs; document dispose when recreating. - Overlay UI: import
CSS2DRenderer/CSS3DRendererfrom addons; sync size with main renderer. - Profiling: read
renderer.infoin dev builds only; explain cost of high pixel ratio and overdraw. - WebXR hook: enable XR on renderer but delegate session to threejs-webxr.
See [examples/workflow-renderer-resize.md](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](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
setPixelRatio(Math.min(devicePixelRatio, 2))on dense scenes. - Mixing sRGB textures with wrong
outputColorSpacecauses washed or crushed blacks. - Forgetting
dispose()on render targets and full-screen quads leaks GPU memory on hot reload. WebGPURendererfeature set moves quickly—always cite current docs version note in answers.
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,WebGLRenderTarget, etc.). - Relate
outputColorSpace/toneMappingto threejs-textures and threejs-materials when color looks wrong. - Point XR session details to threejs-webxr after
renderer.xr.enabledis mentioned. - Mention
dispose()for render targets and render lists on teardown or hot reload. - Cite Addons → Renderers (
CSS2DRenderer, …) when overlays are in scope.
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
能力边界
✅ 适用场景
- 当你需要使用此技能对应的技术栈时
- 当项目需要遵循最佳实践时
- 当需要快速上手或深入理解核心概念时
⚠️ 需要注意
- 复杂业务逻辑需要结合具体场景调整
- 性能优化需要根据实际数据量评估
❌ 不适用场景
- 不相关的技术栈或框架
- 需要完全自定义的特殊场景
常见陷阱 (Gotchas)
- 版本兼容性:注意框架版本与依赖库的兼容性,不同版本 API 可能有差异
- 配置文件格式:配置文件格式错误是最常见的问题,建议使用编辑器的语法检查
- 环境变量:确保所有必要的环境变量已正确设置,敏感信息不要硬编码
- 依赖冲突:多版本共存时注意依赖冲突,使用 lock 文件锁定版本
- 性能陷阱:大数据量场景下注意性能优化,避免 N+1 查询等常见问题
使用流程
Step 1: 环境准备
确保开发环境已安装必要的依赖和工具。
Step 2: 配置初始化
根据项目需求进行基础配置。
Step 3: 核心功能使用
按照示例代码实现核心功能。
Step 4: 测试验证
运行测试确保功能正常。
Step 5: 部署上线
完成开发后进行部署和监控。