用途:在 Three.js r185 的 WebGPU/TSL 环境下程序化编译建筑体量、立面、城市级建筑与语义化场地装配。核心思路是把建筑当编译器:先决定运行时包,再产出并校验可序列化方案,最后发射几何体;方案负责体量、暴露面、放置、材质槽与稳定标识。
主要能力:按可变性与重复度选择运行时包(静态建筑或区块用按材质槽合并的索引 BufferGeometry;可编辑多样模块用按兼容材质槽的 BatchedMesh;重复相同拓扑用空间分页 InstancedMesh;区域级流式用带投影误差 LOD 的边界区块)。支持建筑方案生成:单位与设置归一化,走体量算子轨道(轮廓片→并集/庭院减法→挤出/堆叠→内缩/分割→可选连接件),每个算子结果有稳定 ID 并在下一步前校验。立面放置前先解析暴露边界,量化合法开间数,将立面、屋顶、装饰与转角放置绑定到表面区域。还可做异构场地装配,为遗迹、码头、船、岩石、植被或道具登记稳定放置 ID、所有者、变换/框架/缩放、支撑与间隙体积、锚点与 LOD 策略。最终按材质槽与空间边界编译发射并绑定材质。
使用方式:先初始化 WebGPURenderer,再对 WebGPU 特性做门控;架构规划可保持 CPU 确定性,仅在测得城市级可见性或更新瓶颈时才引入存储或计算。实现算子、足迹减法、开间量化、放置归属或模块局部框架时需读取 grammar-and-mesh-compiler.md;实现候选标识、随机通道或阶段排序时导入 deterministic-placement-key.mjs,并用 validateWinnerKeys() 校验阶段内键唯一性。验证需覆盖简单与复合足迹、庭院、连接件、最小合法跨度、密集放置、重复模块与多随机种子的区域分页,并检查轮廓、转角、开口、退台、屋顶与 LOD 过渡。
适用场景:需要程序化生成建筑体量与立面、城市级建筑布局、模块化重复建筑、区域流式加载,以及遗迹/码头/船只/植被等异构场地装配的 Three.js 项目。
限制与说明:BatchedMesh 只是遍历可见的多绘制条目,改进对象与状态管理,但不等同于 GPU 绘制合并;需要绘制合并时应合并兼容静态几何体或实例化相同拓扑。deterministic-placement-key.mjs 助手不负责支撑、间隙、冲突检测或阶段准入,严格局部胜出并非最大装箱算法。本技能只负责建筑体量、立面语义、建筑模块与场地放置、方案校验、材质槽编译与建筑空间 LOD,几何轮廓与扫掠、材质场、地形与地块场、阴影与输出验证等分别归属其他技能。文中未提供具体安装命令、收费信息或平台支持细节。