19 releases (breaking)
0.15.0 | Oct 29, 2024 |
---|---|
0.14.0 | Jul 6, 2024 |
0.13.0 | Feb 18, 2024 |
0.12.0 | Nov 5, 2023 |
0.3.0 | Nov 3, 2020 |
#149 in Game dev
313 downloads per month
Used in 6 crates
(4 directly)
39KB
250 lines
bevy_obj
Wavefront OBJ mesh asset loader plugin for the Bevy engine.
Usage
Add the crate as a dependency:
Major and Minor version number should match bevy version.
[dependencies]
bevy = "0.15"
bevy_obj = "0.15"
Add the plugin:
use bevy::prelude::*;
use bevy_obj::ObjPlugin;
fn main() {
App::new()
.add_plugins((DefaultPlugins, ObjPlugin))
.run();
}
Load an .obj
file:
fn example_startup_system(asset_server: Res<AssetServer>) {
// Load it as a singular mesh
let mesh_handle = asset_server.load::<Mesh>("example.obj");
// Load it as a scene with limited .mtl material support
let scene_handle = asset_server.load::<Scene>("example.obj");
// Or let bevy infer the type
let mesh = Mesh3d(asset_server.load("example.obj"));
let scene = SceneRoot(asset_server.load("example.obj"));
}
Settings
You can use load_with_settings()
to modify some loader settings.
fn example_startup_system(asset_server: Res<AssetServer>) {
// Load the model with flat normals
let scene = SceneRoot(asset_server.load_with_settings(
"example.obj",
|settings: &mut bevy_obj::ObjSettings| {
settings.force_compute_normals = true;
settings.prefer_flat_normals = true;
},
));
}
License
Licensed under either of
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
at your option.
Dependencies
~40–77MB
~1.5M SLoC