FoliMesh

Cactus e piante grasse per Babylon.js

In Babylon.js una scena desertica non si blocca per le texture, ma per quante piante vengono caricate. Cinque modelli — Saguaro, Cactus a botte, Fico d'India, Agave e Aloe — arrivano in GLB e passano da @babylonjs/loaders: ImportMeshAsync per una pianta singola, LoadAssetContainerAsync con instantiateModelsToScene quando la stessa specie si ripete su tutta la mappa.

Ogni modello include LOD0–LOD3, mesh di collisione e pivot alla base: lod0.addLODLevel(30, lod1) e addLODLevel(80, lod2) alleggeriscono la geometria con l'allontanarsi della camera, mentre null nasconde del tutto la pianta lontana. Le carte di foglie e spine usano glTF MASK, che Babylon.js legge come PBRMaterial con alpha test. Migliaia di agavi stanno in un draw call per mesh con thinInstanceAdd; createInstance serve quando ogni pianta deve essere selezionabile. La mesh di collisione invisibile alimenta checkCollisions o un PhysicsAggregate Havok.

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

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