FoliMesh

Árboles estilo Realista para Babylon.js

Los árboles realistas vienen en GLB y se cargan en Babylon.js usando el loader glTF de @babylonjs/loaders: ImportMeshAsync sirve para un Roble o un Álamo temblón aislado, y LoadAssetContainerAsync con instantiateModelsToScene cuando un parque repite la misma malla. Los niveles LOD0–LOD3 se conectan con lod0.addLODLevel(30, lod1) y addLODLevel(80, lod2); al pasar null el árbol desaparece después de esa distancia.

En bosques grandes, thinInstanceAdd con matrices dibuja miles de Pinos silvestres, Abetos o Sauces llorones en un solo draw call por malla, y createInstance se usa cuando cada árbol requiere picking propio. Las tarjetas de hojas con alpha test escriben profundidad, así que no hay que ordenarlas y las sombras salen bien; la corteza conserva su material aparte. Las mallas de colisión ocultas alimentan checkCollisions o un Havok PhysicsAggregate. Sirve para juegos de supervivencia en primera y tercera persona, mundos abiertos y simuladores.

Modelos
14
Niveles de detalle
LOD0 – LOD3
Formatos
GLB · FBX · OBJ

Acerca del estilo Realista

Los modelos realistas usan el flujo PBR metal/roughness, que glTF 2.0, Unity, Unreal, Godot y three.js leen de forma directa.

  • Corteza: mapas de color, normales y rugosidad en el tronco y las ramas.
  • Follaje: tarjetas con alpha test (masked) y texturas de racimos de hojas, no alpha blend: escriben profundidad, no requieren ordenamiento y generan sombras correctas.
  • Corteza y follaje tienen materiales separados, por lo que la cantidad de draw calls es predecible y el instancing por GPU funciona sin problemas.
  • LOD0 es para tomas cercanas; LOD1–LOD3 quitan ramas y tarjetas de hojas, y el último nivel es lo suficientemente liviano para la distancia.

Ideales para juegos en primera y tercera persona, supervivencia, mundos abiertos y simuladores en PC y consola. En celulares, usa LOD1 o LOD2 como nivel más cercano y controla el overdraw del follaje.

Uso en Babylon.js

Babylon.js carga GLB con el loader glTF de @babylonjs/loaders: ImportMeshAsync (o SceneLoader.ImportMeshAsync en código anterior), o LoadAssetContainerAsync cuando necesitas muchas copias con instantiateModelsToScene.

  • LOD: lod0.addLODLevel(30, lod1), addLODLevel(80, lod2), etc.; pasar null como malla oculta el objeto más allá de esa distancia.
  • Miles de árboles: las thin instances (thinInstanceAdd con matrices) se dibujan en un draw call por malla; usa createInstance normal cuando cada árbol necesite su propio picking o lógica.
  • Follaje: el MASK de glTF se convierte en un PBRMaterial con alpha test (MATERIAL_ALPHATEST).
  • Malla de colisión: isVisible = false y úsala con checkCollisions o la física Havok (PhysicsAggregate con forma MESH).

Packs

Otras categorías

Lo mismo en otros estilos

Lo mismo para otros motores