Tooluck logoTooluck
SKILL.md

threejs-performance

Agent skill fromstaruhub/ClaudeSkills

Three.js 性能优化指南。当 Three.js/React Three Fiber 项目出现掉帧、内存增长、加载缓慢、绘制调用过多,或需要迁移 WebGPU、实现大规模粒子/实例化渲染、配置资源压缩管线时使用。触发关键词:"Three.js 优化"、"WebGPU"、"draw calls"、"内存泄漏"、"TSL"、"InstancedMesh"、"R3F 优化"等。不用于:通用 React 性能问题(用 vercel-react-best-practices)、WebGL/Three.js 入门教学、3D 美术资产的制作本身。

How to install threejs-performance

install threejs-performance
# install the ClaudeSkills pack with the skills CLI
npx skills add staruhub/ClaudeSkills

# or add only this skill to Claude Code: copy the folder

skills/Geek-skills-threejs-performance/

# into

~/.claude/skills/Geek-skills-threejs-performance/ (all projects)

.claude/skills/Geek-skills-threejs-performance/ (one project)

skills/Geek-skills-threejs-performance/SKILL.md

MITFull file
1# Three.js 性能优化指南
2
3## 黄金法则
4
5**绘制调用 < 100 次/帧。** 三角形数量不如绘制调用数量重要;超过 500 次绘制调用,强大 GPU 也会吃力。用 `renderer.info.render.calls` 监控(完整监控代码见 `references/examples.md`)。
6
7## 诊断决策树
8
9| 症状 | 先查 | 深入 |
10|------|------|------|
11| 掉帧、卡顿 | `renderer.info.render.calls` 是否 >100 | 实例化/合批(下文),后处理链 |
12| 内存持续增长 | `renderer.info.memory` 的 geometries/textures 计数是否只增不减 | dispose 铁律(下文),`references/examples.md` 完整清理代码 |
13| 加载慢、显存爆 | 模型是否未压缩 | `references/assets.md` 压缩管线 |
14| 粒子/物理瓶颈 | CPU 粒子是否 >5 万 | WebGPU 计算着色器,`references/webgpu.md` |
15| R3F 项目莫名重渲染 | useFrame 里是否 setState | R3F 三规则(下文) |
16
17## 各领域规则速查
18
19### WebGPU:何时迁移
20绘制调用密集掉帧 / 需要计算着色器做物理粒子(CPU 约 5 万上限,GPU 可达数百万)/ 复杂后处理链卡顿。
21`WebGPURenderer` 必须 `await renderer.init()`。TSL 写一次自动编译 WGSL/GLSL。
22浏览器支持下限(记录时点数据,现查 caniuse 为准):Chrome/Edge 113+,Firefox 141+,Safari 26+。
23初始化回退、TSL 完整指南、计算着色器示例:`references/webgpu.md`。
24
25### 绘制调用优化
26- 大量**相同**几何体(树、石头)→ `InstancedMesh`:1000 棵树 = 1 次绘制
27- 多个**不同**几何体共享材质 → `BatchedMesh`
28- 静态小物件 → `mergeGeometries` 合并
29- 材质**共享复用**,永远不要在循环里 `new Material`
30
31### 资源压缩(收益数字)
32- Draco 几何体压缩:体积减 90-95%
33- KTX2 纹理:GPU 内存约降 10 倍
34- 一条命令:`gltf-transform optimize model.glb out.glb --texture-compress ktx2 --compress draco`
35- 解码器路径配置与 Meshopt/Draco 选型:`references/assets.md`
36
37### 内存铁律
38**Three.js 不会自动回收 GPU 资源。** 移除对象必须:geometry.dispose() + 遍历 material 的所有 texture 属性逐个 dispose + material.dispose();GLTF 的 ImageBitmap 还要 `texture.source.data.close()`。频繁增删对象用对象池。完整代码:`references/examples.md`。
39
40### 着色器三规则
41…

Excerpt shown under the repository's MIT license.

More skills in ClaudeSkills

Keep exploring

Similar skill repositories

thedotmack /

claude-mem
116k

Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More

CCCXGHGM+135 skills

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates