FoliMesh

Packs de assets 3D estilo Realista para PlayCanvas

Ao subir um GLB no editor do PlayCanvas, ele vira um asset do tipo container com toda a hierarquia do modelo e pode ser usado como template; sem editor, o mesmo arquivo carrega com app.assets.loadFromUrl(url, 'container') e asset.resource.instantiateRenderEntity(). Toda árvore, palmeira, cacto, arbusto e rocha vem com LOD0–LOD3; como o PlayCanvas não tem componente de LOD nativo, um script curto compara a distância da câmera e liga os render components de cada nível. O visual realista segue o fluxo PBR metal/roughness: casca com base colour, normal e roughness, e folhas em cards com alpha test que gravam profundidade, dispensam ordenação e projetam sombras corretas. Casca e folhagem são materiais separados, o que mantém draw calls previsíveis e combina com instancing por GPU via meshInstance.setInstancing() em Floresta temperada ou Floresta de coníferas. Rochas e penhascos e o Kit deserto funcionam bem em survival e mundos abertos; no celular, comece pelo LOD1 ou LOD2.

Pacotes

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 PlayCanvas

O PlayCanvas trata GLB como um container asset. No editor, envie o GLB (FBX é convertido para GLB na importação) e você terá um template com a hierarquia do modelo; em código só de engine, use app.assets.loadFromUrl(url, 'container') e asset.resource.instantiateRenderEntity().

  • LOD: não há componente de LOD embutido, então um pequeno script compara a distância da câmera e liga ou desliga os componentes render das entidades LOD0–LOD3.
  • Árvores estáticas podem compartilhar um batch group para juntar draw calls; em florestas grandes, use instancing por hardware com meshInstance.setInstancing() e um vertex buffer de transformações.
  • Folhas: o MASK do glTF define alphaTest no StandardMaterial; use cull mode none para folhas de dupla face.
  • Malha de colisão: componente collision do tipo mesh mais um rigidbody estático, com o componente render desativado.

O mesmo em outros estilos

O mesmo para outras engines