FoliMesh

Crops and flowers in Realistic Style for Babylon.js

Realistic vegetation with PBR bark and leaf textures, normal maps and alpha-tested leaf cards. Vegetation for Babylon.js in GLB: import it with SceneLoader, connect the LOD levels and build forests that run in the browser. This group covers field crops and wildflowers for farm, village and meadow scenes: corn, wheat, pumpkins and sunflowers, along with cornflowers, dandelions, buttercups, violets, clover, bellflowers, tulips, daisies and poppies. Mixed together, they give fields and garden edges a believable, varied look. Each model comes with LOD0 to LOD3, collision, a pivot at the base and wind weights, so stems and leaves sway naturally when placed in large patches. Every seed gives a different plant height, bloom pattern and leaf arrangement, and the models export as GLB, FBX and OBJ for Unity, Unreal Engine, Godot and Bevy. 13 game-ready models in this selection. Every model has LOD0–LOD3, collision and a pivot at the base, and each new seed gives a new variation of the same species.

Models
13
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 Babylon.js

Babylon.js loads GLB through the glTF loader in @babylonjs/loaders: ImportMeshAsync (or SceneLoader.ImportMeshAsync in older code), or LoadAssetContainerAsync when you need many copies via instantiateModelsToScene.

  • LOD: lod0.addLODLevel(30, lod1), addLODLevel(80, lod2) and so on; passing null as the mesh hides the object beyond that distance.
  • Thousands of trees: thin instances (thinInstanceAdd with matrices) render in one draw call per mesh; use regular createInstance when each tree needs its own picking or logic.
  • Leaves: glTF MASK maps to alpha-tested PBRMaterial (MATERIAL_ALPHATEST).
  • Collision mesh: set isVisible = false and use it with checkCollisions or Havok physics (PhysicsAggregate with a MESH shape).

Other categories

Same in other styles

Same for other engines