FoliMesh

Packs de assets 3D para PlayCanvas

PlayCanvas importa el GLB como asset de tipo contenedor: al subirlo en el Editor se crea una plantilla con la jerarquía del modelo, y en código sin editor se usan app.assets.loadFromUrl(url, 'container') y asset.resource.instantiateRenderEntity(). Los ocho packs — Muestra gratuita, Bosque templado, Bosque de coníferas, Playa tropical, Kit del desierto, Rocas y acantilados — traen LOD0–LOD3, colisión y pivote en la base en cada modelo.

Como PlayCanvas no tiene componente LOD, un script corto mide la distancia a la cámara y activa los componentes de render de LOD0–LOD3. Los árboles estáticos se juntan en un batch group y los bosques grandes usan instancing por hardware con meshInstance.setInstancing(). En las hojas, glTF MASK define alphaTest y cull mode none cubre el follaje de dos caras. Cada modelo exporta a GLB, FBX u OBJ, y cada seed nueva genera otra variación.

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