threejs-renderers
$
npx mdskill add partme-ai/full-stack-skills/threejs-renderersManages three.js rendering pipelines, including WebGL and WebGPU renderers, for optimizing draw loops and performance.
- Helps with tuning renderer settings like canvas sizing, color space, and tone mapping for visual quality.
- Integrates with three.js WebGLRenderer, WebGPURenderer, and overlay renderers such as CSS2D and CSS3D.
- Triggers on mentions of specific renderer properties, methods, or Chinese terms like '渲染器'.
- Provides recommendations and code snippets based on user queries about rendering tasks and performance profiling.
SKILL.md
.github/skills/threejs-renderersView on GitHub ↗
--- name: threejs-renderers description: "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." --- ## 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 1. **Choose API**: `WebGLRenderer` for widest compatibility; `WebGPURenderer` when targeting WebGPU and node/TSL stack per project rules. 2. **Size**: match drawing buffer to canvas CSS size × `devicePixelRatio` with a sane cap (performance). 3. **Color**: set `outputColorSpace` / `toneMapping` consistently with textures and materials (cross-link threejs-textures, threejs-materials). 4. **Loop**: prefer `setAnimationLoop` for WebXR-friendly loops; otherwise `requestAnimationFrame`. 5. **Render targets**: pick `WebGLRenderTarget` vs cube/3D/array variants per environment/reflection needs; document dispose when recreating. 6. **Overlay UI**: import `CSS2DRenderer` / `CSS3DRenderer` from addons; sync size with main renderer. 7. **Profiling**: read `renderer.info` in dev builds only; explain cost of high pixel ratio and overdraw. 8. **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 `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](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. ## Agent response checklist When answering under this skill, prefer responses that: 1. Link official renderer or render-target pages (`WebGLRenderer`, `WebGLRenderTarget`, etc.). 2. Relate `outputColorSpace` / `toneMapping` to **threejs-textures** and **threejs-materials** when color looks wrong. 3. Point XR session details to **threejs-webxr** after `renderer.xr.enabled` is mentioned. 4. Mention `dispose()` for render targets and render lists on teardown or hot reload. 5. 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
More from partme-ai/full-stack-skills
- adobe-xd"Guides creation of UI/UX designs, interactive prototypes, reusable components, and design specs in Adobe XD. Use when the user asks about Adobe XD artboards, prototype links, repeat grids, component states, design tokens export, or developer handoff."
- angular"Provides comprehensive guidance for Angular framework including components, modules, services, dependency injection, routing, forms, and TypeScript integration. Use when the user asks about Angular, needs to create Angular applications, implement Angular components, or work with Angular features."
- ansible"Provides comprehensive guidance for Ansible automation including playbooks, roles, inventory, and module usage. Use when the user asks about Ansible, needs to automate IT tasks, create Ansible playbooks, or manage infrastructure with Ansible."
- ant-design-mini"Builds mini-program UIs with Ant Design Mini components for Alipay and WeChat mini-programs. Covers Button, Form, List, Modal, Tabs, NavBar, and 60+ components with theme customization and CSS variable theming. Use when the user needs to create mini-program interfaces with Ant Design Mini, configure themes, or implement mini-program-specific UI patterns."
- ant-design-mobile"Builds React mobile UIs with Ant Design Mobile (antd-mobile) components including Button, Form, List, Modal, Picker, Tabs, PullToRefresh, InfiniteScroll, and 50+ mobile-optimized components. Use when the user needs to create mobile-first React interfaces, implement mobile navigation, forms, or data display with Ant Design Mobile."
- ant-design-react"Builds enterprise React UIs with Ant Design (antd) including 60+ components (Button, Form, Table, Select, Modal, Message), design tokens, TypeScript support, and ConfigProvider theming. Use when the user needs to create React applications with Ant Design, build forms with validation, display data tables, or customize the Ant Design theme."
- ant-design-vueProvides comprehensive guidance for Ant Design Vue (AntDV) component library for Vue 3. Covers installation, usage, API reference, templates, and all component categories. Use when building enterprise-class UI with Vue 3 and Ant Design.
- api-doc-generator"Generate API documentation by scanning Controller classes, extracting endpoint URLs, HTTP methods, parameters, and response structures, then producing standardized docs from templates. Use when the user explicitly mentions generating API documentation, creating API docs, scanning interfaces, or documenting REST APIs. Do not trigger for generic documentation requests without explicit API mention."
- appium"Provides comprehensive guidance for Appium mobile testing including mobile app automation, element location, gestures, and cross-platform testing. Use when the user asks about Appium, needs to test mobile applications, automate mobile apps, or write Appium test scripts."
- ascii-ansi-colorizer"Add an ANSI color layer to existing ASCII/plain-text output (gradient/rainbow/highlights) with alignment-safe rules and a required no-color fallback. Use when the user wants to colorize terminal output, add rainbow effects to CLI text, or style ASCII art with ANSI colors."