SuperAPI AI 工具集

threejs-geometry

设计与创作

查看项目

更新于 10-15 19:50

技能介绍

用途:面向 Three.js 开发者的几何体(Geometry)参考,用于创建 3D 形状、操作顶点数据、构建自定义几何体,以及在大批量对象场景中做性能优化。

主要能力:

  1. 内置几何体:BoxGeometry、SphereGeometry(支持半球等 phi/theta 截取)、PlaneGeometry、CircleGeometry(可做半圆)、CylinderGeometry(不同上下半径可得圆锥、六棱柱)、ConeGeometry、TorusGeometry、TorusKnotGeometry、RingGeometry;进阶形状含 Capsule、Dodecahedron、Icosahedron、Octahedron、Tetrahedron 及自定义 PolyhedronGeometry。
  2. 路径类形状:LatheGeometry 用 Vector2 点数组旋转成形;ExtrudeGeometry 对 Shape 做拉伸并支持倒角参数;TubeGeometry 沿 CatmullRomCurve3 等曲线生成管状体;TextGeometry 配合 FontLoader 加载 typeface.json 字体文件生成 3D 文字(可居中)。
  3. BufferGeometry:所有几何体基类,以类型化数组存储数据。可手动 setAttribute 设置 position、normal、uv、color 属性,setIndex 设置索引;支持通过 setXYZ/getX 等方法修改顶点并置 needsUpdate,修改后调用 computeVertexNormals、computeBoundingBox、computeBoundingSphere。另含 InterleavedBuffer 交错缓冲布局。
  4. 边线与线框:EdgesGeometry 提取硬边、WireframeGeometry 显示全部三角面,配合 LineSegments 使用。
  5. 点与线:BufferGeometry 加 PointsMaterial 生成点云;Line、LineLoop、LineSegments 绘制连线;可用 setFromPoints 快速构建。
  6. 实例化:InstancedMesh 高效渲染大量相同物体,用 Object3D/Matrix4 设置每个实例的变换并更新 instanceMatrix;支持 setColorAt 每实例颜色;射线检测可返回 instanceId。InstancedBufferGeometry 可添加自定义逐实例属性并在着色器中读取。
  7. 工具函数:BufferGeometryUtils 提供 mergeGeometries 合并几何体(可带 groups 以支持多材质)、computeTangents 计算切线(法线贴图所需)、interleaveAttributes 交错属性。
  8. 常用模式:居中(computeBoundingBox + center)、按最大尺寸缩放归一、克隆后旋转/平移/缩放、Morph Targets 变形目标与 morphTargetInfluences 混合。

使用方式:以 ES 模块导入,例如 import * as THREE from "three";示例模块需从 three/examples/jsm/... 路径导入,如 FontLoader、TextGeometry、BufferGeometryUtils。

限制与注意:合并几何体要求属性一致;索引建议不超过 65535 顶点用 Uint16Array,更大用 Uint32Array;分段数越高越平滑但越慢,文档给出 32×32 常规、64×64 高质量、16×16 性能模式;不再使用的几何体应调用 geometry.dispose();修改顶点或实例矩阵后必须置 needsUpdate 才会同步到 GPU;文本几何体需先加载字体文件,文档使用 depth 参数(旧版为 height)。具体版本兼容性与定价资料暂未提供。