FoliMesh

Pack di asset 3D in stile Realistico per PlayCanvas

Un GLB caricato nell'editor di PlayCanvas diventa un asset di tipo container con tutta la gerarchia del modello, pronto come template; nel codice puro lo stesso file si carica con app.assets.loadFromUrl(url, 'container') e asset.resource.instantiateRenderEntity(). Ogni albero, palma, cactus, cespuglio e roccia ha LOD0–LOD3: PlayCanvas non offre un componente LOD integrato, quindi un piccolo script confronta la distanza dalla camera e attiva i render component del livello giusto.

Lo stile realistico usa il workflow PBR metal/roughness: corteccia con base colour, normal e roughness, foglie come card alpha-tested che scrivono la profondità, non richiedono sorting e proiettano ombre corrette. Corteccia e fogliame sono materiali separati, con draw call prevedibili e buona resa con l'instancing GPU di meshInstance.setInstancing() su Foresta temperata o Foresta di conifere. Rocce e scogliere e il Kit deserto sono adatti a survival e open world; su mobile conviene partire da LOD1 o LOD2.

Informazioni sullo stile Realistico

I modelli realistici usano il workflow PBR metal/roughness, letto direttamente da glTF 2.0, Unity, Unreal, Godot e three.js.

  • Corteccia: mappe di colore, normali e roughness su tronco e rami.
  • Foglie: card in alpha test (masked) con texture di gruppi di foglie, non in alpha blend: scrivono la profondità, non richiedono ordinamento e proiettano ombre corrette.
  • Corteccia e fogliame hanno materiali separati, quindi le draw call restano prevedibili e il GPU instancing funziona bene.
  • LOD0 è per i primi piani; LOD1–LOD3 eliminano rami e card di foglie, e l’ultimo livello è abbastanza leggero per la distanza.

Ideali per giochi in prima e terza persona, survival, open world e simulatori su PC e console. Su mobile usa LOD1 o LOD2 come livello più vicino e tieni d’occhio l’overdraw del fogliame.

Uso in PlayCanvas

PlayCanvas tratta il GLB come un container asset. Nell’editor carica il GLB (l’FBX viene convertito in GLB all’importazione) e ottieni un template con la gerarchia del modello; nel codice solo engine usa app.assets.loadFromUrl(url, 'container') e asset.resource.instantiateRenderEntity().

  • LOD: non esiste un componente LOD integrato, quindi un piccolo script confronta la distanza dalla camera e attiva o disattiva i componenti render delle entità LOD0–LOD3.
  • Gli alberi statici possono condividere un batch group per unire le draw call; per foreste estese usa l’instancing hardware con meshInstance.setInstancing() e un vertex buffer di trasformazioni.
  • Foglie: il MASK di glTF imposta alphaTest sullo StandardMaterial; usa cull mode none per foglie double-sided.
  • Mesh di collisione: componente collision di tipo mesh più un rigidbody statico, con il componente render disattivato.

Pacchetti

Lo stesso in altri stili

Lo stesso per altri motori