FoliMesh

适用于Babylon.js的仙人掌与多肉

在 Babylon.js 里做沙漠场景,瓶颈通常不在贴图,而在同时加载的植株数量。这套模型共 5 个——巨柱仙人掌、金琥、梨果仙人掌、龙舌兰和芦荟——以 GLB 交付,通过 @babylonjs/loaders 引入:单株用 ImportMeshAsync,要把同一品种铺满整张地图就用 LoadAssetContainerAsync 配合 instantiateModelsToScene。

每个模型都带 LOD0–LOD3、碰撞网格和位于根部的轴心,lod0.addLODLevel(30, lod1) 与 addLODLevel(80, lod2) 会在镜头拉远时逐级减面,传入 null 则直接隐藏远处植株。叶片与尖刺卡片走 glTF MASK,Babylon.js 会将其读作带 alpha 测试的 PBRMaterial。上千株龙舌兰用 thinInstanceAdd 合并,每个网格一次 draw call;需要单独拾取时改用 createInstance。不可见的碰撞网格可接 checkCollisions 或 Havok 的 PhysicsAggregate,适合生存、西部和开放世界地图。

模型
5
细节层级
LOD0 – LOD3
格式
GLB · FBX · OBJ

在Babylon.js中使用

Babylon.js 通过 @babylonjs/loaders 中的 glTF 加载器加载 GLB:使用 ImportMeshAsync(旧代码中为 SceneLoader.ImportMeshAsync),需要大量副本时用 LoadAssetContainerAsync 配合 instantiateModelsToScene。

  • LOD:lod0.addLODLevel(30, lod1)、addLODLevel(80, lod2) 依次添加;网格参数传 null 时,超过该距离物体会被隐藏。
  • 成千上万棵树:Thin Instances(用矩阵调用 thinInstanceAdd)每个网格只需一次 Draw Call;若每棵树需要独立拾取或逻辑,则使用普通的 createInstance。
  • 树叶:glTF 的 MASK 会映射为 Alpha 测试的 PBRMaterial(MATERIAL_ALPHATEST)。
  • 碰撞网格:设置 isVisible = false,配合 checkCollisions 或 Havok 物理(使用 MESH 形状的 PhysicsAggregate)。

资源包

其他类别

其他风格的同款

其他引擎的同款