From ea0fb7f2b3efefe4b3b7c3c434f2a6af4f8cb80d Mon Sep 17 00:00:00 2001 From: Elias Date: Wed, 26 Aug 2020 01:55:08 +0200 Subject: [PATCH] Add support for binary glTF (.glb) (#271) Add support for binary glTF (.glb) --- assets/models/monkey/Monkey.glb | Bin 0 -> 130852 bytes crates/bevy_gltf/src/loader.rs | 22 ++++++++++++++-------- examples/3d/load_model.rs | 14 +++++++++++++- 3 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 assets/models/monkey/Monkey.glb diff --git a/assets/models/monkey/Monkey.glb b/assets/models/monkey/Monkey.glb new file mode 100644 index 0000000000000000000000000000000000000000..1998f1dbe1cf39970c44be1ea65192dad5f200b2 GIT binary patch literal 130852 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 X_u1tW{Oo<9`h?$;ePxyK2k-v?%!E^s literal 0 HcmV?d00001 diff --git a/crates/bevy_gltf/src/loader.rs b/crates/bevy_gltf/src/loader.rs index ad8441657e5a35..4016d7d6631f49 100644 --- a/crates/bevy_gltf/src/loader.rs +++ b/crates/bevy_gltf/src/loader.rs @@ -5,7 +5,7 @@ use bevy_render::{ use anyhow::Result; use bevy_asset::AssetLoader; -use gltf::{buffer::Source, iter, mesh::Mode}; +use gltf::{buffer::Source, mesh::Mode}; use std::{fs, io, path::Path}; use thiserror::Error; @@ -22,7 +22,7 @@ impl AssetLoader for GltfLoader { } fn extensions(&self) -> &[&str] { - static EXTENSIONS: &[&str] = &["gltf"]; + static EXTENSIONS: &[&str] = &["gltf", "glb"]; EXTENSIONS } } @@ -36,8 +36,8 @@ pub enum GltfError { Gltf(#[from] gltf::Error), #[error("Failed to load file.")] Io(#[from] io::Error), - #[error("Binary buffers not supported yet.")] - BinaryBuffersUnsupported, + #[error("Binary blob is missing.")] + MissingBlob, #[error("Failed to decode base64 mesh data.")] Base64Decode(#[from] base64::DecodeError), #[error("Unsupported buffer format.")] @@ -58,7 +58,7 @@ fn get_primitive_topology(mode: Mode) -> Result { // TODO: this should return a scene pub fn load_gltf(asset_path: &Path, bytes: Vec) -> Result { let gltf = gltf::Gltf::from_slice(&bytes)?; - let buffer_data = load_buffers(gltf.buffers(), asset_path)?; + let buffer_data = load_buffers(&gltf, asset_path)?; for scene in gltf.scenes() { if let Some(node) = scene.nodes().next() { return Ok(load_node(&buffer_data, &node, 1)?); @@ -112,11 +112,11 @@ fn load_node(buffer_data: &[Vec], node: &gltf::Node, depth: i32) -> Result Result>, GltfError> { +fn load_buffers(gltf: &gltf::Gltf, asset_path: &Path) -> Result>, GltfError> { const OCTET_STREAM_URI: &str = "data:application/octet-stream;base64,"; let mut buffer_data = Vec::new(); - for buffer in buffers { + for buffer in gltf.buffers() { match buffer.source() { Source::Uri(uri) => { if uri.starts_with("data:") { @@ -131,7 +131,13 @@ fn load_buffers(buffers: iter::Buffers, asset_path: &Path) -> Result buffer_data.push(buffer_bytes); } } - Source::Bin => return Err(GltfError::BinaryBuffersUnsupported), + Source::Bin => { + if let Some(blob) = gltf.blob.as_deref() { + buffer_data.push(blob.into()); + } else { + return Err(GltfError::MissingBlob); + } + } } } diff --git a/examples/3d/load_model.rs b/examples/3d/load_model.rs index 6781b44a402d4b..f83f94a8751ff8 100644 --- a/examples/3d/load_model.rs +++ b/examples/3d/load_model.rs @@ -17,12 +17,24 @@ fn setup( commands // mesh .spawn(PbrComponents { - // load the mesh + // load a mesh from glTF mesh: asset_server .load("assets/models/monkey/Monkey.gltf") .unwrap(), // create a material for the mesh material: materials.add(Color::rgb(0.5, 0.4, 0.3).into()), + translation: Translation::new(-1.5, 0.0, 0.0), + ..Default::default() + }) + // mesh + .spawn(PbrComponents { + // load a mesh from binary glTF + mesh: asset_server + .load("assets/models/monkey/Monkey.glb") + .unwrap(), + // create a material for the mesh + material: materials.add(Color::rgb(0.5, 0.4, 0.3).into()), + translation: Translation::new(1.5, 0.0, 0.0), ..Default::default() }) // light