FoliMesh

Ground cover in Realistic Style for Bevy

Ground cover is the layer where a Bevy scene starts to look alive, and on this engine the import path is short: asset_server.load(GltfAssetLabel::Scene(0).from_asset("fern.glb")), spawned as a SceneRoot. GLB is the format to use here — FBX and OBJ still need third-party crates. Fern, Grass Tuft and Reed each ship LOD0–LOD3, a collision mesh and a base pivot, so forest floors, meadows and shorelines fill in cleanly for survival and open-world scenes.

Being realistic assets, bark and leaf use the metal/roughness workflow. Leaf cards are masked, so glTF alphaMode MASK arrives as AlphaMode::Mask(cutoff) on StandardMaterial: they write depth, need no sorting and cast correct shadows. Assign VisibilityRange to the LOD entities for dithered crossfade. Shared meshes and materials batch and instance automatically, which keeps thousands of grass tufts cheap; build collisions from the collision mesh with Avian or bevy_rapier.

Models
3
Levels of detail
LOD0 – LOD3
Formats
GLB · FBX · OBJ

About the Realistic style

Realistic models use the PBR metal/roughness workflow that glTF 2.0, Unity, Unreal, Godot and three.js read directly.

  • Bark: base colour, normal and roughness maps on the trunk and branches.
  • Leaves: alpha-tested (masked) cards with leaf-cluster textures, not alpha-blended, so they write depth, need no sorting and cast correct shadows.
  • Bark and leaves use separate materials, which keeps draw calls predictable and works well with GPU instancing.
  • LOD0 is the close-up mesh; LOD1–LOD3 drop branches and leaf cards, so the last level is light enough for far distances.

Best for first- and third-person games, survival, open worlds and simulators on PC and consoles. On mobile, start from LOD1 or LOD2 as the nearest level and watch overdraw from leaf cards.

Using it in Bevy

Bevy loads glTF/GLB through the AssetServer: asset_server.load(GltfAssetLabel::Scene(0).from_asset("tree.glb")), spawned with SceneRoot; individual meshes and materials are addressable by label. FBX and OBJ need third-party crates, so GLB is the format to use.

  • LOD: give the LOD0–LOD3 entities a VisibilityRange (start and end margins) for distance switching with dithered crossfade — Bevy's HLOD mechanism.
  • Leaves: glTF alphaMode MASK becomes AlphaMode::Mask(cutoff) on StandardMaterial, and double-sided materials disable back-face culling.
  • Entities that share a mesh and material are batched and instanced automatically, so many tree copies stay cheap.
  • Collision: Bevy has no built-in physics; build a collider from the collision mesh with Avian or bevy_rapier.

Other categories

Same in other styles

Same for other engines