Crates.io | bevy_obj |
lib.rs | bevy_obj |
version | 0.15.0 |
source | src |
created_at | 2020-08-25 21:50:12.062535 |
updated_at | 2024-10-29 20:26:14.62102 |
description | Wavefront OBJ mesh asset loader plugin for the Bevy engine |
homepage | |
repository | https://github.com/AmionSky/bevy_obj |
max_upload_size | |
id | 280744 |
size | 148,178 |
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
at your option.