FoliMesh

Árboles estilo Realista para three.js

Los árboles realistas se integran en una escena three.js con GLTFLoader de three/addons: el GLB llega con las mallas LOD0–LOD3 listas para THREE.LOD. Registra cada nivel con lod.addLevel(mesh, distance) y el render cambiará de nivel según la distancia de cámara en cada frame, algo clave cuando un Roble, un Pino silvestre o un Sauce llorón quedan justo delante de una cámara en primera persona.

En bosques, InstancedMesh mantiene miles de troncos en una sola llamada de dibujo y BatchedMesh mezcla variantes de Abeto, Abedul y Arce; como THREE.LOD funciona por objeto, conviene agrupar las instancias por nivel dentro de cada chunk. Las hojas son tarjetas con alpha test (alphaMode MASK pasa a material.alphaTest y los materiales de doble cara reciben THREE.DoubleSide), así que no necesitan ordenarse y proyectan sombras correctas. Las mallas de colisión se quedan invisibles para Rapier o cannon-es; todo funciona con WebGLRenderer y WebGPURenderer.

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

Sobre el estilo Realista

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

  • Corteza: mapas de color, normales y rugosidad en el tronco y las ramas.
  • Hojas: tarjetas con alpha test (masked) y texturas de grupos de hojas, no alpha blend: escriben profundidad, no necesitan ordenación y proyectan sombras correctas.
  • Corteza y hojas usan materiales separados, así el número de draw calls es predecible y el instancing por GPU funciona bien.
  • LOD0 es para primeros planos; LOD1–LOD3 eliminan ramas y tarjetas de hojas, y el último nivel es lo bastante ligero para la distancia.

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

Uso en three.js

En three.js, carga el GLB con GLTFLoader de three/addons; añade 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 fotograma.
  • Bosques: InstancedMesh dibuja miles de copias en un solo draw call y BatchedMesh mezcla varias variaciones de árboles. THREE.LOD no actúa por instancia, así que agrupa tú mismo las instancias por LOD en cada chunk.
  • Hojas: 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 librería de física como Rapier o cannon-es.

Funciona tanto con WebGLRenderer como con WebGPURenderer.

Packs

Otras categorías

Lo mismo en otros estilos

Lo mismo para otros motores