FoliMesh

Packs de assets 3D estilo Realista para PlayCanvas

Cuando subes un GLB al editor de PlayCanvas, este se convierte en un asset tipo container con toda la jerarquía del modelo y se puede usar como template; en código sin editor, el mismo archivo se carga con app.assets.loadFromUrl(url, 'container') y asset.resource.instantiateRenderEntity(). Todos los árboles, palmeras, cactus, arbustos y rocas traen LOD0–LOD3; como PlayCanvas no tiene componente LOD propio, un script breve compara la distancia a la cámara y prende los render components de cada nivel.

El estilo realista sigue el flujo PBR metal/roughness: corteza con mapas de base colour, normal y roughness, y hojas en tarjetas con alpha test que escriben profundidad, no requieren ordenamiento y dan sombras correctas. Corteza y follaje usan materiales distintos, así los draw calls son predecibles y el instanciado por GPU con meshInstance.setInstancing() funciona bien en Bosque templado o Bosque de coníferas. Rocas y acantilados y el Kit del desierto sirven para supervivencia y mundos abiertos; en celulares, arranca desde LOD1 o LOD2.

Acerca del estilo Realista

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

  • Corteza: mapas de color, normales y rugosidad en el tronco y las ramas.
  • Follaje: tarjetas con alpha test (masked) y texturas de racimos de hojas, no alpha blend: escriben profundidad, no requieren ordenamiento y generan sombras correctas.
  • Corteza y follaje tienen materiales separados, por lo que la cantidad de draw calls es predecible y el instancing por GPU funciona sin problemas.
  • LOD0 es para tomas cercanas; LOD1–LOD3 quitan ramas y tarjetas de hojas, y el último nivel es lo suficientemente liviano para la distancia.

Ideales para juegos en primera y tercera persona, supervivencia, mundos abiertos y simuladores en PC y consola. En celulares, usa LOD1 o LOD2 como nivel más cercano y controla 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 script corto 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 combinar draw calls; en bosques grandes usa instancing por hardware con meshInstance.setInstancing() y un vertex buffer de transformaciones.
  • Follaje: el MASK de glTF define 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.

Packs

Lo mismo en otros estilos

Lo mismo para otros motores