FoliMesh

3D Asset Packs for PlayCanvas

PlayCanvas imports GLB as a container asset: upload the file in the Editor and you get a template with the full model hierarchy, or load it in engine-only code with app.assets.loadFromUrl(url, 'container') and asset.resource.instantiateRenderEntity(). All 8 packs — Free Sampler, Temperate Forest, Conifer Forest, Tropical Beach, Desert Kit, Rocks & Cliffs — ship every model with LOD0–LOD3, a collision mesh and a pivot at the base.

PlayCanvas has no LOD component, so a short script compares camera distance and toggles the render components of the LOD0–LOD3 entities. Static trees merge into a batch group; large forests use hardware instancing via meshInstance.setInstancing(). Leaves rely on glTF MASK alphaTest and cull mode none for two-sided foliage. Export is GLB, FBX or OBJ, and a new seed gives a new variation.

Using it in PlayCanvas

PlayCanvas treats GLB as a container asset. In the Editor, upload GLB (FBX is converted to GLB on import) to get a template with the model hierarchy; in engine-only code use app.assets.loadFromUrl(url, 'container') and asset.resource.instantiateRenderEntity().

  • LOD: there is no built-in LOD component, so a small script compares camera distance and toggles the render components of the LOD0–LOD3 entities.
  • Static trees can share a batch group to merge draw calls; for large forests use hardware instancing with meshInstance.setInstancing() and a vertex buffer of transforms.
  • Leaves: glTF MASK sets alphaTest on the StandardMaterial; use cull mode none for two-sided leaves.
  • Collision mesh: a collision component of type mesh plus a static rigidbody, with its render component disabled.

Packs

Same in other styles

Same for other engines