FoliMesh

Vegetazione del suolo per three.js

Felce, ciuffo d'erba e canna palustre arrivano in GLB: basta una chiamata a GLTFLoader da three/addons e i modelli sono già nella scena. I livelli LOD0–LOD3 si agganciano a THREE.LOD con lod.addLevel(mesh, distance), che cambia livello in base alla distanza della camera a ogni frame; DRACOLoader o KTX2Loader servono solo se il file usa davvero quelle estensioni.

Per prati e sottobosco, InstancedMesh disegna migliaia di copie in una sola draw call e BatchedMesh mescola le varianti. Dato che THREE.LOD non si applica per istanza, conviene raggruppare le istanze per LOD in ogni chunk. alphaMode MASK diventa material.alphaTest e le foglie a doppia faccia ricevono side: THREE.DoubleSide. La mesh di collisione invisibile va a Rapier o cannon-es, e tutto gira sia su WebGLRenderer sia su WebGPURenderer.

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

Uso in three.js

In three.js carica il GLB con GLTFLoader da three/addons; aggiungi DRACOLoader o KTX2Loader solo se un file usa quelle estensioni.

  • LOD a distanza: THREE.LOD con lod.addLevel(mesh, distance) per LOD0–LOD3; il livello cambia in base alla distanza dalla camera a ogni frame.
  • Foreste: InstancedMesh disegna migliaia di copie in una sola draw call, e BatchedMesh mescola più varianti di alberi. THREE.LOD non agisce per istanza, quindi raggruppa tu le istanze per LOD in ogni chunk.
  • Foglie: l’alphaMode MASK di glTF diventa material.alphaTest, e i materiali double-sided ricevono automaticamente side: THREE.DoubleSide.
  • Mesh di collisione: lasciala invisibile e passala a una libreria fisica come Rapier o cannon-es.

Funziona sia con WebGLRenderer sia con WebGPURenderer.

Altre categorie

Lo stesso in altri stili

Lo stesso per altri motori