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 游戏开发

Download history 411/week @ 2024-04-28 543/week @ 2024-05-05 590/week @ 2024-05-12 443/week @ 2024-05-19 593/week @ 2024-05-26 649/week @ 2024-06-02 512/week @ 2024-06-09 435/week @ 2024-06-16 329/week @ 2024-06-23 199/week @ 2024-06-30 341/week @ 2024-07-07 318/week @ 2024-07-14 472/week @ 2024-07-21 645/week @ 2024-07-28 376/week @ 2024-08-04 391/week @ 2024-08-11

每月下载量 1,911次
用于 optima

MIT 许可证

1.5MB
104

bevy_stl

Crate version

Crate license

bevy的STL加载器。

STL是一个非常简单的格式,仅支持三角形几何(位置 + 法线),不包含任何颜色 / uv / 纹理信息。

它被大多数CAD软件作为输出格式支持。

替代方案

  • 默认情况下,bevy可以加载glTF场景,如果您正在寻找一种加载更复杂模型/场景的方法,包括材质、动画等,这是一个更好的选择。
  • bevy_obj可以加载Wavefront .obj文件,它可以携带比STL更多的信息(如颜色、材质、UV坐标)

使用方法

  1. bevy_stl添加到您的Cargo.toml
  2. bevy_stl::StlPlugin插件添加到bevy App
  3. 通过将".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