FoliMesh

Vegetação rasteira para three.js

A samambaia, o tufo de grama e o junco chegam em GLB: uma chamada a GLTFLoader de three/addons e os modelos já estão na cena. Os níveis LOD0–LOD3 entram no THREE.LOD com lod.addLevel(mesh, distance), que troca de nível conforme a distância da câmera a cada frame; DRACOLoader ou KTX2Loader só são necessários se o arquivo usar essas extensões.

Para campos e chão de floresta, o InstancedMesh desenha milhares de cópias em um único draw call e o BatchedMesh mistura variações. Como o THREE.LOD não vale por instância, agrupe as instâncias por LOD em cada chunk. alphaMode MASK vira material.alphaTest e folhas de face dupla recebem side: THREE.DoubleSide. A malha de colisão invisível vai para Rapier ou cannon-es, e tudo roda tanto no WebGLRenderer quanto no WebGPURenderer.

Modelos
3
Níveis de detalhe
LOD0 – LOD3
Formatos
GLB · FBX · OBJ

Como usar em three.js

No three.js, carregue o GLB com GLTFLoader de three/addons; adicione DRACOLoader ou KTX2Loader só se o arquivo usar essas extensões.

  • LOD por distância: THREE.LOD com lod.addLevel(mesh, distance) para LOD0–LOD3; o nível muda conforme a distância da câmera a cada frame.
  • Florestas: InstancedMesh desenha milhares de cópias em um único draw call, e BatchedMesh mistura várias variações de árvores. THREE.LOD não atua por instância, então agrupe você mesmo as instâncias por LOD em cada chunk.
  • Folhas: o alphaMode MASK do glTF vira material.alphaTest, e materiais de dupla face recebem side: THREE.DoubleSide automaticamente.
  • Malha de colisão: deixe invisível e passe para uma biblioteca de física como Rapier ou cannon-es.

Funciona com WebGLRenderer e com WebGPURenderer.

Outras categorias

O mesmo em outros estilos

O mesmo para outras engines