FoliMesh

Rocks for PlayCanvas

PlayCanvas loads GLB as a container asset: drop a FoliMesh rock into the editor and you get a template with the full hierarchy, or call app.assets.loadFromUrl(url, 'container') and instantiateRenderEntity() in engine-only projects. All seven models — Pebbles, Stone, Boulder, Rock Slab, Rock Scatter, Cliff and Cliff with Boulders — ship with LOD0–LOD3, a pivot at the base and a mesh collision shape, so they slot into realistic scenes and low-poly stylised worlds alike.

There is no built-in LOD component, so a short script that compares camera distance and toggles the render components of the LOD0–LOD3 entities keeps cliffs cheap up close and far away. Static clusters can share a batch group, while dense Pebbles and Rock Scatter fields run best with meshInstance.setInstancing(). Each seed produces a new variation, and every model exports to GLB, FBX and OBJ.

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

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

Other categories

Same in other styles

Same for other engines