FoliMesh

适用于Babylon.js的写实风格岩石

Babylon.js 通过 @babylonjs/loaders 里的 glTF 加载器直接读取这些 GLB 岩石:单块石头用 ImportMeshAsync,碎石堆需要上百份副本时用 LoadAssetContainerAsync 配合 instantiateModelsToScene。写实石材走 PBR 金属度/粗糙度流程,Babylon.js 无需转换即可显示,法线贴图表现岩层、裂隙和苔藓。

本组共 7 个模型:鹅卵石、石头、巨石、岩板、碎石堆、悬崖和带巨石的悬崖。每个都有 LOD0–LOD3、碰撞体和位于底部的轴心,适合生存、开放世界和模拟类游戏。层级用 lod0.addLODLevel(30, lod1)、addLODLevel(80, lod2) 连接,传 null 可在该距离外隐藏网格。岩石是静态的,thin instance(thinInstanceAdd)能以每个网格一次 draw call 画出整片碎石坡;隐藏的碰撞网格可配合 checkCollisions 或 Havok(PhysicsAggregate)使用。

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

关于写实风格

写实模型采用 PBR metal/roughness 流程,glTF 2.0、Unity、Unreal、Godot 和 three.js 都能直接读取。

  • 树皮:树干和树枝使用基础色、法线和粗糙度贴图。
  • 树叶:带叶簇贴图的 Alpha 测试(Masked)面片,而不是半透明混合,因此会写入深度、无需排序,阴影也正确。
  • 树皮与树叶使用独立材质,Draw Call 数量可预期,适合 GPU 实例化。
  • LOD0 用于近景;LOD1–LOD3 逐级减少树枝和叶片面片,最后一级足够轻,适合远景。

最适合 PC 和主机上的第一/第三人称游戏、生存类、开放世界和模拟器。移动端建议把 LOD1 或 LOD2 作为最近一级,并注意树叶的 overdraw。

在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)。

资源包

其他类别

其他风格的同款

其他引擎的同款