FoliMesh

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

Helecho, Mata de pasto y Junco son vegetación de suelo facetada pensada para el navegador: archivos GLB que se cargan con GLTFLoader y cuyas mallas LOD0–LOD3 se conectan a THREE.LOD con lod.addLevel(mesh, distance). El color vive en los colores de vértices (COLOR_0) y el sombreado plano da una normal por cara: sin texturas, sin trabajo de UV y sin tarjetas alfa, o sea, sin overdraw transparente en GPU móviles.

Como todas las piezas comparten un mismo material, instanciar es sencillo: miles de matas de pasto en un solo draw call con InstancedMesh, y varias variantes mezcladas con BatchedMesh. El LOD0 se mantiene entre unos cientos y un par de miles de triángulos, justo para estrategia, city builders, VR y juegos web estilizados. Las mallas de colisión quedan invisibles y se pasan a cannon-es o Rapier.

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 three.js

En three.js, carga el GLB con GLTFLoader de three/addons; agrega DRACOLoader o KTX2Loader solo si un archivo usa esas extensiones.

  • LOD por distancia: THREE.LOD con lod.addLevel(mesh, distance) para LOD0–LOD3; cambia de nivel según la distancia a la cámara en cada cuadro.
  • Bosques: InstancedMesh dibuja miles de copias en un solo draw call y BatchedMesh combina varias variaciones de árboles. THREE.LOD no funciona por instancia, así que agrupa tú las instancias por LOD en cada chunk.
  • Follaje: el alphaMode MASK de glTF se convierte en material.alphaTest y los materiales de doble cara reciben side: THREE.DoubleSide automáticamente.
  • Malla de colisión: déjala invisible y pásala a una biblioteca de física como Rapier o cannon-es.

Funciona tanto con WebGLRenderer como con WebGPURenderer.

Otras categorías

Lo mismo en otros estilos

Lo mismo para otros motores