FoliMesh

Plantas de suelo estilo Realista para PlayCanvas

PlayCanvas trata el GLB como container asset: sube el archivo al editor o llama a app.assets.loadFromUrl(url, 'container') en código y crea la entidad con asset.resource.instantiateRenderEntity(). Cada modelo incluye LOD0–LOD3, así que, al no existir un componente LOD nativo, basta un script corto que compare la distancia a la cámara y active o desactive los componentes de render.

El estilo realista usa PBR metal/roughness: materiales separados de corteza (color base, normal, rugosidad) y hojas en tarjetas con máscara; para hojas de doble cara pon cull mode none. Helecho, Mata de hierba y Carrizo encajan en shooters en primera persona, supervivencia y mundos abiertos. Agrupa matas estáticas en un batch group e instancia grandes superficies con meshInstance.setInstancing(). La colisión es un componente mesh más un rigidbody estático con el render desactivado.

Modelos
3
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 PlayCanvas

PlayCanvas trata el GLB como un asset container. En el editor, sube el GLB (el FBX se convierte a GLB al importar) y obtendrás una plantilla con la jerarquía del modelo; en código solo de motor usa app.assets.loadFromUrl(url, 'container') y asset.resource.instantiateRenderEntity().

  • LOD: no hay un componente LOD integrado, así que un pequeño script compara la distancia a la cámara y activa o desactiva los componentes render de las entidades LOD0–LOD3.
  • Los árboles estáticos pueden compartir un batch group para fusionar draw calls; en bosques grandes usa instancing por hardware con meshInstance.setInstancing() y un vertex buffer de transformaciones.
  • Hojas: el MASK de glTF establece alphaTest en el StandardMaterial; usa cull mode none para hojas de doble cara.
  • Malla de colisión: componente collision de tipo mesh más un rigidbody estático, con el componente render desactivado.

Otras categorías

Lo mismo en otros estilos

Lo mismo para otros motores