FoliMesh

3D Asset Packs for Bevy

Bevy reads glTF and GLB through the AssetServer, so every pack here arrives as a scene you spawn with SceneRoot: asset_server.load(GltfAssetLabel::Scene(0).from_asset("conifer.glb")). FBX and OBJ need third-party crates, so use GLB. Eight packs cover Temperate Forest, Conifer Forest, Tropical Beach, Savanna & Dry Lands, Desert Kit, Rocks & Cliffs, Low-Poly Starter and a Free Sampler, with trees, palms, cacti, bushes, ground cover and rocks.

Each model carries LOD0–LOD3, so give the LOD entities a VisibilityRange and Bevy's HLOD mechanism switches them by distance with a dithered crossfade — a good fit for survival and base-building games in Rust. glTF alphaMode MASK becomes AlphaMode::Mask(cutoff) on StandardMaterial, and shared meshes are instanced automatically, keeping hundreds of tree copies cheap. The pivot sits at the base, a collision mesh feeds Avian or bevy_rapier, and each new seed gives new variations.

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

Same in other styles

Same for other engines