glTF 与 3D 资产
前两章的布景全是代码里现编的——meshes.add(Cuboid::new(...)) 铸坯子、materials.add(StandardMaterial {...}) 调漆,连旗子都是手搓顶点。真做游戏,美术不可能用 Rust 写几何体。得有一扇门,让 Blender、Maya、3ds Max 里做好的模型走进来。
glTF(GL Transmission Format)就是那扇门。Khronos Group 制定的开放标准,专为实时渲染设计,业界称它"3D 界的 JPEG"。Bevy 的 glTF 加载器由 bevy_gltf crate 提供,随 DefaultPlugins 自动注册——装好插件就能用,不需要额外配置。
本章覆盖:
- 用
AssetServer+WorldAssetRoot加载第一个 glTF 模型 GltfAssetLabel:按场景、节点、网格、材质精准取子资产Gltf资产的named_scenes、named_nodes:按名字访问- 材质与纹理的自动映射:glTF 材质怎么变成
StandardMaterial - 场景实例化:同一份模型摆多份,各自带变换
WorldInstanceReady:场景实体就绪后改材质- 加载状态检测:
LoadState轮询 - 自定义
AssetLoader:教 Bevy 认识新格式
配套 crate 是 code/ch23-gltf。本章用到的 glTF 模型是 Bevy 自带的 FlightHelmet,不需要自己准备美术资产。