FoliMesh

Plantas de suelo estilo Low-poly para Babylon.js

La vegetación de suelo low-poly es lo más ligero que puedes meter en una escena de Babylon.js: tres modelos — Helecho, Mata de hierba y Carrizo — con LOD0–LOD3 y pivote en la base, exportados en GLB para el cargador glTF de @babylonjs/loaders. Carga uno con ImportMeshAsync, o pasa a LoadAssetContainerAsync con instantiateModelsToScene cuando el suelo del bosque necesita cientos de copias.

El color va en los colores de vértice (COLOR_0) y cada cara tiene una sola normal con sombreado plano, así que toda la selección comparte un único material: sin texturas, sin trabajo de UV y casi sin memoria de vídeo. Las hojas son geometría sólida, de modo que no hay overdraw de alfa en GPU móviles. Los niveles se enlazan con lod0.addLODLevel(30, lod1), la malla de colisión se oculta y funciona con checkCollisions o Havok, y thinInstanceAdd reparte las matas en una sola llamada de dibujo.

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

Sobre el estilo Low-poly

El low poly es el estilo más barato de renderizar y de distribuir.

  • Sombreado plano: una normal por cara da el aspecto facetado nítido, sin mapas de normales.
  • El color va en los vértices (glTF COLOR_0): sin texturas, sin trabajo de UV y casi sin memoria de vídeo.
  • Las hojas son geometría sólida, no tarjetas con alfa: sin alpha test ni overdraw transparente, algo clave en GPU móviles.
  • Un único material sirve para todos los modelos de la escena, así que los árboles se agrupan e instancian con facilidad.
  • Los presupuestos habituales van de unos cientos a un par de miles de triángulos en LOD0.

Encaja en móviles, WebGL/WebGPU, VR, estrategia, city builders y juegos indie estilizados. En el motor, usa un material que multiplique por el color de vértice.

Uso en Babylon.js

Babylon.js carga GLB con el loader glTF de @babylonjs/loaders: ImportMeshAsync (o SceneLoader.ImportMeshAsync en código antiguo), 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.
  • Hojas: 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).

Otras categorías

Lo mismo en otros estilos

Lo mismo para otros motores