Wavefront OBJ mesh asset loader plugin for the Bevy engine.
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"));
}
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;
},
));
}
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.