如何解决使用 Bevy 渲染 Blender / gltf 模型,包括颜色
我正在用 Bevy 做我的第一步,旨在模拟“定居者”或“纪元 18xx”类型的模拟。我有一个树模型,我从 Blender 导出为 gltf。这棵树有一个棕色的树干和绿色的叶子。我可以在基于网络的查看器中打开 gltf 文件,到目前为止一切看起来都很好。
在 Bevy 中,我设置了一个简单的相机、灯光、......并且可以像这样加载树:
let tree = asset_server.load("tree.gltf#Scene0");
commands.spawn_scene(tree);
这很好用。我可以看到颜色正确的树。但它是一个充满“世界”的“场景”。我想用不同的变换渲染许多树,所以我尝试渲染“普通”网格。我发现模型是由两个网格组成的,所以我必须这样做:
let trunk = asset_server.load("tree.gltf#Mesh0/Primitive0");
let leaves = asset_server.load("tree.gltf#Mesh1/Primitive0");
commands.spawn_bundle(PbrBundle {
mesh: leaves,material: materials.add(Color::rgb(0.0,1.0,0.0).into()),// ...
这“有点”有效:我从 gltf 文件中丢失了颜色,必须手动设置它们。树干和叶子之间的相对位置被破坏了,所以我可能丢失了文件中定义的一些转换。
根据 https://bevyengine.org/news/bevy-0-5/#top-level-gltf-asset 的说法,Bevy 0.5 中的 Gltf 处理已得到改进,但我不明白在我的情况下使用它的预期方式是什么。
有人能给我一个最简单的例子,说明如何在 Blender 中定义我的游戏资产(树、房子、栅栏……),并在 Bevy 中多次渲染导出的 gltf?包括指定的颜色/材料?我认为我上面展示的两种方法之间一定有某种东西,但我不明白。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。