FoliMesh

Bushes for Bevy

Bevy loads glTF/GLB directly through the AssetServer, so bushes ship as GLB and spawn as SceneRoot: asset_server.load(GltfAssetLabel::Scene(0).from_asset("bush.glb")). Every LOD0–LOD3 entity gets a VisibilityRange for dithered crossfade distance switching, and leaves whose glTF alphaMode is MASK arrive as AlphaMode::Mask(cutoff) on StandardMaterial, with double-sided materials disabling back-face culling.

This selection covers all eight models — Bamboo, Bush, Boxwood, Hedge, Juniper, Wild Rose, Raspberry and Hazel — the hedge and undergrowth layer between trees and ground cover. Entities sharing a mesh and material are batched and instanced automatically, so repeats stay cheap; build colliders from the collision mesh with Avian or bevy_rapier for the Rust survival and exploration games Bevy handles well.

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

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.

Packs

Other categories

Same in other styles

Same for other engines