用途:把程序化几何生成当作编译流程处理——先选表示形式,冻结语义区域与误差界,精确计算容量,输出拓扑与渲染属性,再对拓扑和渲染几何做验证。语义属于生成器输入;分配、拓扑、分组、更新与释放属于 writer。
主要能力:按可观察与更新模式选择表示,如索引 BufferGeometry 加 groups、BatchedMesh、InstancedMesh、无矩阵实例化加存储状态、存储数据加间接绘制、自适应网格/四叉树/clipmap、等高线派生的帽面加墙体网格、有界体积网格。冻结坐标框架、语义尺寸、命名区域、材质槽、平滑组、UV 图、硬边界、拓扑身份、LOD 视域与资源归属,并以物理像素为单位设定保守误差界。按视图设独立进入/退出阈值、迟滞与最小停留时间。精确计算顶点与索引容量后再分配。使用 addVertex、addTriangle、addQuad、duplicateForBoundary、startSmoothingGroup、startUvChart、addGroup、finishGeometry 等写入接口,finishGeometry 断言计划与实际计数一致。保持拓扑身份与渲染顶点身份分离,在硬法线、材质边界、UV 接缝与镜像切线空间处复制渲染顶点。需要法线贴图一致性时使用 MikkTSpace。轮廓与分支扫掠使用旋转最小化平行传输框架并处理反平行回退与闭环和乐校正。
使用方式:多系统协作时可由 $threejs-choose-skills 协调。涉及轮廓时先读 contour topology and terrain compilation;涉及锚点存活时先读 semantic anchors and LOD bindings;沿曲线输出时读 profile sweeps and transported frames;加批处理、动态更新或间接绘制前读 batching, dynamic updates, and indirect draws。GPU 存储或间接命令前需 await renderer.init(); 并校验 native WebGPU 后端。
限制:r185 WebGPU 下 BatchedMesh 管理几何与剔除,但后端仍遍历可见的多绘制条目;InstancedMesh 仅适用于拓扑相同的情况。Uint16Array 仅到索引 65534,否则显式用 Uint32Array。MikkTSpace 转换会去索引化,需重算计数、分组、边界与字节。computeAsync() 不是 GPU 完成栅栏。间接命令需 CPU 已知字节偏移与稳定同质桶,着色器掩码不等同可见性压缩。资料未提供具体价格、收费模式或平台支持范围。