From 86a467f0f36151e7d0243bb2fe216ad21e475ea8 Mon Sep 17 00:00:00 2001 From: Carter Anderson Date: Tue, 7 Jan 2020 23:03:09 -0800 Subject: [PATCH] initial gltf example --- Cargo.toml | 1 + examples/assets/Box.glb | Bin 0 -> 1664 bytes examples/assets/Box.gltf | 142 +++++++++++ examples/assets/Box0.bin | Bin 0 -> 648 bytes examples/assets/Lantern.gltf | 468 +++++++++++++++++++++++++++++++++++ examples/load_model.rs | 11 + src/asset/gltf.rs | 6 +- src/asset/mod.rs | 4 + src/render/mesh.rs | 2 +- 9 files changed, 630 insertions(+), 4 deletions(-) create mode 100644 examples/assets/Box.glb create mode 100644 examples/assets/Box.gltf create mode 100644 examples/assets/Box0.bin create mode 100644 examples/assets/Lantern.gltf create mode 100644 examples/load_model.rs diff --git a/Cargo.toml b/Cargo.toml index 61888022f7..c737fed958 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,7 @@ zerocopy = "0.2" log = "0.4" env_logger = "0.7" rand = "0.7.2" +gltf = "0.14.0" [profile.release] debug = true \ No newline at end of file diff --git a/examples/assets/Box.glb b/examples/assets/Box.glb new file mode 100644 index 0000000000000000000000000000000000000000..95ec886b6b92b134291fd41d34ac9d5349306e0a GIT binary patch literal 1664 zcmb7EOK;jh5S}DW+O$p6v`u^8GeNd_1bm4oEftl43Q#VHgE0$OGB&bJ+Q_oRvHz-n zq(7!Jix*Y|3Dweg=e6_A%bt4u#xVe_&H(fXY|f(@CPIkBiUbn22;I3GyAPRY#|SxE#v~@J z-RZV!7Blr6`_bt&`^`?9nFdzn`eWB2AFOMR#W1rd(&eFRdl`st&r#1>1WTZ{gEyie zT(@AfoJ@Fl@A97_$mlWVoykNr7-KrYd=dEEkNb}c3{ujK0x6e1_PSp7z%Cj)?0>TUa1Jlw h71BAph6{KDmq-`z7OvnOyhpl%4{!}1;S^J::new(); + // asset::load_gltf(get_path("examples/assets/Box.gltf").to_str().unwrap()).unwrap(); + asset::load_gltf("examples/assets/Box.gltf").unwrap(); + + // Application::run(universe, world, scheduler); +} \ No newline at end of file diff --git a/src/asset/gltf.rs b/src/asset/gltf.rs index 5341eca8c4..6306f79c93 100644 --- a/src/asset/gltf.rs +++ b/src/asset/gltf.rs @@ -2,17 +2,17 @@ use std::{fs, io}; use std::boxed::Box; use std::error::Error; - // use crate::render::Mesh; pub fn load_gltf(path: &str) -> Result<(), Box> { + println!("{}", path); let file = fs::File::open(&path)?; let reader = io::BufReader::new(file); let gltf = gltf::Gltf::from_reader(reader)?; for scene in gltf.scenes() { - for mesh in scene.nodes() { + for _mesh in scene.nodes() { } } - + Ok(()) } diff --git a/src/asset/mod.rs b/src/asset/mod.rs index db45beab6d..e9eb6e41ce 100644 --- a/src/asset/mod.rs +++ b/src/asset/mod.rs @@ -1,3 +1,7 @@ +mod gltf; + +pub use self::gltf::load_gltf; + use std::{sync::{Arc, RwLock}, marker::PhantomData, ops::Drop, collections::HashMap}; pub struct Handle diff --git a/src/render/mesh.rs b/src/render/mesh.rs index be902a248a..2627f4e6ad 100644 --- a/src/render/mesh.rs +++ b/src/render/mesh.rs @@ -6,7 +6,7 @@ pub enum MeshType { Cube, Plane { size: f32 - } + }, } pub struct Mesh {