mcpField
T
threejs-objects

threejs-objects

github.com/full-stack-skills开发10374 次安装4 周前更新
代码仓库

关于 threejs-objects

threejs-objects 是用于解答 three.js 场景图与对象问题的技能,涵盖对象变换、网格类型、射线拾取和图层,并说明相关问题的处理边界。

主要功能

  1. 01场景图与对象变换
  2. 02静态、实例化及骨骼网格
  3. 03射线拾取
  4. 04基于图层控制可见性
  5. 05对象释放建议

适用场景

  1. 01用 Group 和变换组织对象
  2. 02使用 Raycaster 选择场景对象
  3. 03按图层筛选相机和对象的可见性

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/full-stack-skills/threejs-skills --skill threejs-objects

安装后在 Claude Code 中输入/threejs-objects确认已加载。

附带文件agents/openai.yamlexamples/workflow-raycaster-pick.md

详细介绍

何时使用此技能

用户提到以下内容时,始终使用此技能:

  • 父子关系、position/rotation/scale、matrixAutoUpdate、updateMatrixWorld
  • 选择网格类型:静态、实例化、蒙皮或批处理 LOD
  • 拾取:Raycaster.setFromCamera、intersectObjects、递归标志、face/uv 结果
  • 图层:针对摄像机/灯光/对象的选择性可见性

重要:对象与数学

需求技能
场景图 + 拾取threejs-objects
仅盒体/射线数学threejs-math

触发短语包括:

  • “Object3D”、“InstancedMesh”、“SkinnedMesh”、“Raycaster”、“layers”
  • “父子节点”、“射线拾取”、“图层”

如何使用此技能

  1. 使用 Group 和变换来构建场景;尽可能减少层级深度。
  2. 实例化:设置每个实例的矩阵;理解 count 和视锥体剔除行为。
  3. SkinnedMesh:绑定骨架;动画片段参见 threejs-animation;蒙皮材质标志参见 threejs-materials。
  4. 拾取:将设备坐标归一化,从摄像机设置射线,按图层筛选,并对交点排序。
  5. 事件:在自定义对象上使用 EventDispatcher——仅介绍模式,不涉及 DOM 框架。
  6. 裁剪:用户需要分段剖切时,按文档使用 ClippingGroup。
  7. 释放资源:永久移除对象时,释放几何体/材质/纹理。

参见 examples/workflow-raycaster-pick.md。

文档索引(官方)

文档章节代表性链接
核心https://threejs.org/docs/Object3D.html
对象https://threejs.org/docs/Mesh.html
对象https://threejs.org/docs/InstancedMesh.html
核心https://threejs.org/docs/Raycaster.html

范围

  • 范围内: Object3D 场景图、可渲染对象类型、光线投射、图层、事件分发器基础知识。
  • 范围外: 物理引擎;XR 输入映射(threejs-webxr)。

常见陷阱和最佳实践

  • 对移动对象执行世界空间射线测试前,忘记调用 updateMatrixWorld。
  • 未设置 layers 的 Raycaster 会拾取意外对象——在摄像机和对象上保持图层掩码一致。
  • InstancedMesh 的射线拾取命中需要按实例处理——请查阅对应版本的文档。

文档和版本

Object3D、网格类型、Raycaster 和 Layers 的文档位于 three.js 文档中的 Objects 和 Core 章节。拾取和图层的行为可能会有细微变化——请链接到与用户所用 three.js 版本对应的具体页面。

Agent 回复检查清单

使用此技能回答时,优先采用以下做法:

  1. 根据需要链接 Object3D、Mesh、InstancedMesh、Raycaster 或 Layers。
  2. 将骨骼动画与 threejs-animation 及蒙皮网格设置结合介绍。
  3. 对不涉及场景图的纯线性代数问题,转交给 threejs-math。
  4. 涉及会话/控制器时,将 XR 输入问题转交给 threejs-webxr。
  5. 永久移除对象时,提醒调用 dispose() 释放几何体/材质。

参考资料

关键词

英文: object3d、mesh、instancedmesh、skinnedmesh、raycaster、layers、scene graph、three.js

中文: 场景图、Object3D、Mesh、实例化、骨骼网格、射线拾取、图层、three.js

评论

支持 Markdown