FoliMesh

Vegetación de suelo estilo Low-poly para Babylon.js

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

El color está en los colores de vértice (COLOR_0) y cada cara tiene una sola normal con sombreado plano, así que toda la selección usa un único material: sin texturas, sin UV y casi sin memoria de video. Las hojas son geometría sólida, así que no hay overdraw alfa en GPU móviles. Los niveles se conectan con lod0.addLODLevel(30, lod1), la malla de colisión queda oculta y trabaja con checkCollisions o Havok, y thinInstanceAdd distribuye los matojos en una sola llamada de dibujo.

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

Acerca del estilo Low-poly

El low poly es el estilo más económico para renderizar y para publicar.

  • Sombreado plano: una normal por cara da el look facetado nítido, sin mapas de normales.
  • El color está en los vértices (glTF COLOR_0): sin texturas, sin trabajo de UV y casi sin memoria de video.
  • El follaje es geometría sólida, no tarjetas con alfa: sin alpha test ni overdraw transparente, algo clave en GPU de celulares.
  • Un solo material sirve para todos los modelos de la escena, así que los árboles se agrupan e instancian fácilmente.
  • Los presupuestos típicos van de unos cientos a un par de miles de triángulos en LOD0.

Funciona muy bien en celulares, 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 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).

Otras categorías

Lo mismo en otros estilos

Lo mismo para otros motores