When to use this skill
ALWAYS use this skill when the user mentions:
WebGLRenderer or WebGPURenderer creation, setSize, setPixelRatio, setAnimationLoop
- Color management:
outputColorSpace, toneMapping, exposure-like behavior via renderer properties
WebGLRenderTarget, WebGLCubeRenderTarget, MRT, readback, or render-to-texture setup at renderer level
Info (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:
WebGLRenderer for widest compatibility; WebGPURenderer when targeting WebGPU and node/TSL stack per project rules.
- Size: match drawing buffer to canvas CSS size ×
devicePixelRatio with a sane cap (performance).
- Color: set
outputColorSpace / toneMapping consistently with textures and materials (cross-link threejs-textures, threejs-materials).
- Loop: prefer
setAnimationLoop for WebXR-friendly loops; otherwise requestAnimationFrame.
- Render targets: pick
WebGLRenderTarget vs cube/3D/array variants per environment/reflection needs; document dispose when recreating.
- Overlay UI: import
CSS2DRenderer / CSS3DRenderer from addons; sync size with main renderer.
- Profiling: read
renderer.info in 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.
Doc map (official)
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
setPixelRatio(Math.min(devicePixelRatio, 2)) on dense scenes.
- Mixing sRGB textures with wrong
outputColorSpace causes washed or crushed blacks.
- Forgetting
dispose() on render targets and full-screen quads leaks GPU memory on hot reload.
WebGPURenderer feature 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 / toneMapping to threejs-textures and threejs-materials when color looks wrong.
- Point XR session details to threejs-webxr after
renderer.xr.enabled is mentioned.
- Mention
dispose() for render targets and render lists on teardown or hot reload.
- Cite Addons → Renderers (
CSS2DRenderer, …) when overlays are in scope.
References
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: 部署上线
完成开发后进行部署和监控。
1---2name: threejs-renderers3description: 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.4---56## When to use this skill78**ALWAYS use this skill when the user mentions:**910- `WebGLRenderer` or `WebGPURenderer` creation, `setSize`, `setPixelRatio`, `setAnimationLoop`11- Color management: `outputColorSpace`, `toneMapping`, exposure-like behavior via renderer properties12- `WebGLRenderTarget`, `WebGLCubeRenderTarget`, MRT, readback, or render-to-texture setup at renderer level13- `Info` (`render`, `triangles`, `calls`) for profiling; `CanvasTarget` / storage textures when working from docs index1415**IMPORTANT: this skill vs neighbors**1617| Topic | Use skill |18|-------|-----------|19| Fullscreen passes, bloom, SSAO, composer chain | **threejs-postprocessing** |20| VR/AR session, `XRButton`, hand models | **threejs-webxr** |21| Node-based frame graph / TSL post stack | **threejs-node-tsl** + renderer enablement |22| Loading assets | **threejs-loaders** |2324**Trigger phrases include:**2526- "WebGLRenderer", "WebGPURenderer", "setPixelRatio", "toneMapping", "WebGLRenderTarget"27- "渲染器", "像素比", "色调映射", "离屏渲染"2829## How to use this skill30311. **Choose API**: `WebGLRenderer` for widest compatibility; `WebGPURenderer` when targeting WebGPU and node/TSL stack per project rules.322. **Size**: match drawing buffer to canvas CSS size × `devicePixelRatio` with a sane cap (performance).333. **Color**: set `outputColorSpace` / `toneMapping` consistently with textures and materials (cross-link threejs-textures, threejs-materials).344. **Loop**: prefer `setAnimationLoop` for WebXR-friendly loops; otherwise `requestAnimationFrame`.355. **Render targets**: pick `WebGLRenderTarget` vs cube/3D/array variants per environment/reflection needs; document dispose when recreating.366. **Overlay UI**: import `CSS2DRenderer` / `CSS3DRenderer` from addons; sync size with main renderer.377. **Profiling**: read `renderer.info` in dev builds only; explain cost of high pixel ratio and overdraw.388. **WebXR hook**: enable XR on renderer but delegate session to **threejs-webxr**.3940See [examples/workflow-renderer-resize.md](examples/workflow-renderer-resize.md).4142## Doc map (official)4344| Docs section | Representative links |45|--------------|----------------------|46| Core Renderers | https://threejs.org/docs/WebGLRenderer.html |47| WebGPU | https://threejs.org/docs/WebGPURenderer.html |48| Render targets | https://threejs.org/docs/WebGLRenderTarget.html |49| Core PostProcessing (class) | https://threejs.org/docs/PostProcessing.html |50| Addons renderers | https://threejs.org/docs/CSS2DRenderer.html |5152More class links: [references/official-sections.md](references/official-sections.md).5354## Scope5556- **In scope:** Renderer construction, sizing, color/tone, targets, Info, addon CSS/SVG renderers, high-level XR enable only.57- **Out of scope:** Individual composer passes (threejs-postprocessing); XR input (threejs-webxr); file IO (threejs-loaders).5859## Common pitfalls and best practices6061- Uncapped DPR burns fill rate; cap `setPixelRatio(Math.min(devicePixelRatio, 2))` on dense scenes.62- Mixing sRGB textures with wrong `outputColorSpace` causes washed or crushed blacks.63- Forgetting `dispose()` on render targets and full-screen quads leaks GPU memory on hot reload.64- `WebGPURenderer` feature set moves quickly—always cite current docs version note in answers.6566## Documentation and version6768`WebGLRenderer`, `WebGPURenderer`, and color-management defaults evolve across releases. Use the [Renderers](https://threejs.org/docs/#Renderers) section of [three.js docs](https://threejs.org/docs/) for the user’s three.js line; WebGPU and node stacks may require newer minors—link class pages rather than memorizing constructor defaults.6970## Agent response checklist7172When answering under this skill, prefer responses that:73741. Link official renderer or render-target pages (`WebGLRenderer`, `WebGLRenderTarget`, etc.).752. Relate `outputColorSpace` / `toneMapping` to **threejs-textures** and **threejs-materials** when color looks wrong.763. Point XR session details to **threejs-webxr** after `renderer.xr.enabled` is mentioned.774. Mention `dispose()` for render targets and render lists on teardown or hot reload.785. Cite **Addons → Renderers** (`CSS2DRenderer`, …) when overlays are in scope.7980## References8182- https://threejs.org/docs/WebGLRenderer.html83- https://threejs.org/docs/WebGPURenderer.html84- https://threejs.org/docs/#Renderers85- https://threejs.org/docs/Info.html8687## Keywords8889**English:** webglrenderer, webgpurenderer, rendertarget, pixelratio, tonemapping, outputcolorspace, css2d, css3d, three.js9091**中文:** WebGLRenderer、WebGPU、渲染目标、像素比、色调映射、输出色彩空间、渲染器、three.js9293## 能力边界9495### ✅ 适用场景96- 当你需要使用此技能对应的技术栈时97- 当项目需要遵循最佳实践时98- 当需要快速上手或深入理解核心概念时99100### ⚠️ 需要注意101- 复杂业务逻辑需要结合具体场景调整102- 性能优化需要根据实际数据量评估103104### ❌ 不适用场景105- 不相关的技术栈或框架106- 需要完全自定义的特殊场景107108## 常见陷阱 (Gotchas)1091101. **版本兼容性**:注意框架版本与依赖库的兼容性,不同版本 API 可能有差异1112. **配置文件格式**:配置文件格式错误是最常见的问题,建议使用编辑器的语法检查1123. **环境变量**:确保所有必要的环境变量已正确设置,敏感信息不要硬编码1134. **依赖冲突**:多版本共存时注意依赖冲突,使用 lock 文件锁定版本1145. **性能陷阱**:大数据量场景下注意性能优化,避免 N+1 查询等常见问题115116## 使用流程117118### Step 1: 环境准备119确保开发环境已安装必要的依赖和工具。120121### Step 2: 配置初始化122根据项目需求进行基础配置。123124### Step 3: 核心功能使用125按照示例代码实现核心功能。126127### Step 4: 测试验证128运行测试确保功能正常。129130### Step 5: 部署上线131完成开发后进行部署和监控。