用途:在 Three.js 或原生 WebGPU 中生成经过设计的程序化植被,包括树木、草地、常春藤、花卉等。核心理念是把植物表示为生长层级加渲染适配,而不是随机散布的圆柱体。
主要能力:按层级定义物种表(长度、半径、锥度、子枝数量、萌发范围、角度、扭转、扭曲度、分段数、径向段数);用队列迭代生长分支以控制递归深度与预算;以带 UV 接缝的定向环发射分支;根据继承方向、随机曲率、向性/外力及可选吸引约束更新截面朝向;用分层纵向槽位与独立置换的角度槽位生成子枝;在拓扑稳定后生成叶片,并依据卡片朝向与局部树冠体积构建法线;明确区分叶根变形、分支层级变形与整树摆动三套风系统。
资料还包含多个可参考实现:结构化白蜡树生长系统(含预设、延续、子枝放置、叶片、材质、风与构图契约)、风格化草地(叶片簇几何、图像路径遮罩、逐实例原点/朝向、圆弧扎根风、阵风前沿、叶尖颤动、颜色团块、半透明与边缘诊断)、GPU 计算草地(MRT 叶片参数、地形贴合放置、Voronoi 团块、贝塞尔折叠、距离 LOD/剔除)、GPU 剔除花田(虚拟地址、生态、层级压缩、间接绘制、距离分层、图集、风、接触与诊断)、程序化表面常春藤(种子样条跟随茎、重复网格重投影、切平面爬行与下垂、平行传输管环、生长显现、实例化叶片与伞形花序、刚性叶柄铰链风)。
使用方式:先阅读 references/structured-ash-growth-system.md 并保留其预设、延续、子枝放置、叶片、材质、风与构图契约,再进行调整;常春藤的 TypeScript 模块是唯一实现,入口文件仅做再导出。
限制与失败条件:分支出现可见螺旋、密集草地忽略地形高度或团块变化、子枝在同一相对高度萌发、树皮纹理比例随分支半径变化、叶片旋转时暴露平面卡片法线、叶风移动卡片根部而非保持锚定、不同种子改变物种身份而非受控变化、几何成本无逐层预算、表面跟随茎偏离宿主或接缝法线翻转、常春藤附着时忽略切平面、叶风绕卡片中心而非叶柄旋转、百万花田分配 CPU 变换或逐候选记录、远处花 LOD 用通用精灵替换物种身份、压缩与直接渲染重建出不同根或接受结果、花头在茎弯曲后仍保持世界朝上。
路由边界:通用分支环发射且无生长模型时使用 $threejs-procedural-geometry;本技能负责物种表、藤蔓与分支拓扑、表面跟随生长、枝叶、草地场、根系与扎根风。