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 Bevy
Bevy carga glTF/GLB mediante el AssetServer: asset_server.load(GltfAssetLabel::Scene(0).from_asset("tree.glb")), instanciado con SceneRoot; las mallas y materiales individuales se pueden direccionar por etiqueta. FBX y OBJ requieren crates de terceros, así que el formato a usar es GLB.
- LOD: da a las entidades LOD0–LOD3 un
VisibilityRange(márgenes de inicio y fin) para cambiar según la distancia con fundido por dithering: el mecanismo HLOD de Bevy. - Hojas: el alphaMode MASK de glTF se convierte en
AlphaMode::Mask(cutoff)en elStandardMaterial, y los materiales de doble cara desactivan el culling de caras traseras. - Las entidades que comparten malla y material se agrupan e instancian automáticamente, así que muchas copias de árboles salen baratas.
- Colisión: Bevy no trae física integrada; crea un collider a partir de la malla de colisión con Avian o bevy_rapier.

