FoliMesh

Cespugli in stile Low-poly per Babylon.js

I cespugli Low-poly si importano in Babylon.js come normali GLB: caricali con ImportMeshAsync da @babylonjs/loaders, oppure con LoadAssetContainerAsync e instantiateModelsToScene quando la stessa siepe si ripete decine di volte. Le foglie sono geometria solida e sfaccettata in flat shading, il colore sta nei vertex color (COLOR_0): niente alpha testing e niente overdraw trasparente, un vantaggio sulle GPU mobile. Un solo materiale basta per tutto il set, quindi Bambù, Siepe, Ginepro e Lampone si raggruppano in un unico batch, e le thin instances disegnano migliaia di copie in una draw call per mesh.

Ogni cespuglio ha LOD0–LOD3, collisione e pivot alla base. Collega i livelli con lod0.addLODLevel(30, lod1) e addLODLevel(80, lod2); null nasconde l'oggetto oltre quella distanza. Il LOD0 resta tra qualche centinaio e un paio di migliaia di triangoli. La mesh di collisione invisibile alimenta checkCollisions o un PhysicsAggregate Havok. Questo sottobosco sfaccettato è adatto a WebGL/WebGPU, VR, strategia e city builder.

Modelli
8
Livelli di dettaglio
LOD0 – LOD3
Formati
GLB · FBX · OBJ

Informazioni sullo stile Low-poly

Il low poly è lo stile più economico da renderizzare e da distribuire.

  • Flat shading: una normale per faccia dà il look sfaccettato e netto, niente normal map.
  • Il colore è nei vertici (glTF COLOR_0): niente texture, niente lavoro sulle UV, quasi zero memoria video.
  • Il fogliame è geometria piena, non card con alpha: niente alpha test né overdraw trasparente, fondamentale sulle GPU mobile.
  • Un solo materiale può servire tutti i modelli della scena, quindi gli alberi si raggruppano e si istanziano facilmente.
  • I budget tipici vanno da qualche centinaio a un paio di migliaia di triangoli al LOD0.

Adatto a mobile, WebGL/WebGPU, VR, strategici, city builder e giochi indie stilizzati. Nel motore usa un materiale che moltiplichi per il colore ai vertici.

Uso in Babylon.js

Babylon.js carica il GLB con il loader glTF di @babylonjs/loaders: ImportMeshAsync (o SceneLoader.ImportMeshAsync nel codice meno recente), oppure LoadAssetContainerAsync quando servono molte copie tramite instantiateModelsToScene.

  • LOD: lod0.addLODLevel(30, lod1), addLODLevel(80, lod2) e così via; passare null come mesh nasconde l’oggetto oltre quella distanza.
  • Migliaia di alberi: le thin instance (thinInstanceAdd con matrici) si disegnano con una draw call per mesh; usa createInstance normale quando ogni albero richiede picking o logica propri.
  • Foglie: il MASK di glTF diventa un PBRMaterial in alpha test (MATERIAL_ALPHATEST).
  • Mesh di collisione: isVisible = false e usala con checkCollisions o la fisica Havok (PhysicsAggregate con forma MESH).

Pacchetti

Altre categorie

Lo stesso in altri stili

Lo stesso per altri motori