FoliMesh

Palmeras estilo Low-poly para Babylon.js

Las palmeras low-poly se cargan en Babylon.js directamente como GLB: un archivo con ImportMeshAsync de @babylonjs/loaders, o LoadAssetContainerAsync con instantiateModelsToScene cuando una playa necesita muchas copias. Cada modelo incluye LOD0–LOD3, una malla de colisión y el pivote en la base, así que lod0.addLODLevel(30, lod1) y addLODLevel(80, lod2) ocultan las palmeras lejanas sin coste extra.

El aspecto facetado sale del flat shading y los colores de vértice, sin texturas. Un único PBRMaterial con multiplicación por color de vértice sirve para el Cocotero, la Palmera datilera y la Washingtonia, y las thin instances dibujan cientos de troncos en una sola llamada de dibujo por malla. Las hojas son geometría sólida: ni alpha testing ni overdraw en GPU móviles. El presupuesto de LOD0 va de unos cientos a un par de miles de triángulos, ideal para islas, juegos de construcción y escenas WebGL/WebGPU.

Modelos
5
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