FoliMesh

Rochas estilo Realista para Babylon.js

O Babylon.js carrega estas rochas GLB direto pelo loader glTF de @babylonjs/loaders: ImportMeshAsync para um rochedo isolado e LoadAssetContainerAsync com instantiateModelsToScene quando um aglomerado de pedras precisa de centenas de cópias. A pedra realista segue o fluxo PBR metal/roughness que o Babylon.js exibe sem conversão; os normal maps trazem estratos, rachaduras e musgo.

São 7 modelos — Seixos, Pedra, Rochedo, Laje de rocha, Aglomerado de pedras, Penhasco e Penhasco com rochedos. Todos têm LOD0–LOD3, colisão e pivô na base, o que serve bem a survival, mundos abertos e simuladores. Os níveis se encadeiam com lod0.addLODLevel(30, lod1) e addLODLevel(80, lod2); null esconde a malha além dessa distância. Como as rochas são estáticas, thin instances (thinInstanceAdd) desenham uma pedreira inteira em um draw call por malha, e a malha de colisão invisível funciona com checkCollisions ou a física Havok (PhysicsAggregate).

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

Sobre o estilo Realista

Os modelos realistas usam o fluxo PBR metal/roughness, lido diretamente por glTF 2.0, Unity, Unreal, Godot e three.js.

  • Casca: mapas de cor, normais e rugosidade no tronco e nos galhos.
  • Folhas: cards com alpha test (masked) e texturas de cachos de folhas, sem alpha blend: escrevem profundidade, não precisam de ordenação e projetam sombras corretas.
  • Casca e folhas usam materiais separados, então o número de draw calls é previsível e o instancing na GPU funciona bem.
  • LOD0 é para close; LOD1–LOD3 removem galhos e cards de folhas, e o último nível é leve o bastante para longas distâncias.

Ideais para jogos em primeira e terceira pessoa, sobrevivência, mundo aberto e simuladores em PC e console. No celular, use LOD1 ou LOD2 como nível mais próximo e fique de olho no overdraw da folhagem.

Como usar em Babylon.js

O Babylon.js carrega GLB pelo loader glTF de @babylonjs/loaders: ImportMeshAsync (ou SceneLoader.ImportMeshAsync em código mais antigo), ou LoadAssetContainerAsync quando você precisa de muitas cópias via instantiateModelsToScene.

  • LOD: lod0.addLODLevel(30, lod1), addLODLevel(80, lod2) e assim por diante; passar null como malha esconde o objeto além dessa distância.
  • Milhares de árvores: thin instances (thinInstanceAdd com matrizes) são desenhadas em um draw call por malha; use createInstance comum quando cada árvore precisar de picking ou lógica próprios.
  • Folhas: o MASK do glTF vira um PBRMaterial com alpha test (MATERIAL_ALPHATEST).
  • Malha de colisão: isVisible = false e use com checkCollisions ou física Havok (PhysicsAggregate com shape MESH).

Pacotes

Outras categorias

O mesmo em outros estilos

O mesmo para outras engines