14个版本 (破坏性更新)
0.14.0 | 2024年7月19日 |
---|---|
0.13.0 | 2024年3月13日 |
0.12.0 | 2023年12月3日 |
0.11.0 | 2023年7月9日 |
0.2.0 | 2020年12月26日 |
#170 in 游戏开发
每月下载量 1,911次
用于 optima
1.5MB
104 行
bevy_stl
bevy的STL加载器。
STL是一个非常简单的格式,仅支持三角形几何(位置 + 法线),不包含任何颜色 / uv / 纹理信息。
它被大多数CAD软件作为输出格式支持。
替代方案
- 默认情况下,bevy可以加载glTF场景,如果您正在寻找一种加载更复杂模型/场景的方法,包括材质、动画等,这是一个更好的选择。
- bevy_obj可以加载Wavefront .obj文件,它可以携带比STL更多的信息(如颜色、材质、UV坐标)
使用方法
- 将
bevy_stl
添加到您的Cargo.toml
- 将
bevy_stl::StlPlugin
插件添加到bevyApp
- 通过将".stl"扩展名的路径传递给
asset_server.load(..)
来加载STL资源
示例
fn main() {
App::new()
.add_plugins(bevy_stl::StlPlugin)
.add_systems(Startup, setup)
// ...
.run();
}
fn setup(commands: &mut Commands, asset_server: Res<AssetServer>, mut materials: ResMut<Assets<StandardMaterial>>) {
commands
.spawn(PbrBundle {
mesh: asset_server.load("disc.stl"),
material: materials.add(Color::rgb(0.9, 0.4, 0.3).into()),
..Default::default()
})
// ...
}
您可以在examples/spinning_disc.rs
中找到一个更完整的示例 - 使用cargo run --example spinning_disc --release
来运行它。
可选功能
线框图
默认情况下,bevy_stl
生成三角形网格(PrimitiveTopology::TriangleList
)。当启用可选的wireframe
功能时,还会生成一个额外的线网格(PrimitiveTopology::LineList
)。
可以通过Cargo.toml启用此功能
[dependencies.bevy_stl]
features = ["wireframe"]
启用后,可以通过将线框图标签附加到传递给资产加载器的路径来访问网格
// This returns the triangle mesh (the default):
asset_server.load("disc.stl")
// This returns the wireframe mesh:
asset_server.load("disc.stl#wireframe")
依赖关系
~33–70MB
~1M SLoC