MCPcopy Create free account
hub / github.com/Bloom-Engine/engine / main

Function main

tools/bloom-reference/examples/check_tangents.rs:1–24  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1fn main() {
2 let data = std::fs::read("/Users/amlug/projects/bloom/engine/examples/renderer-test/assets/DamagedHelmet.glb").unwrap();
3 let gltf = gltf::Gltf::from_slice(&data).unwrap();
4 let mut buffer_data: Vec<Vec<u8>> = Vec::new();
5 for buffer in gltf.buffers() {
6 match buffer.source() {
7 gltf::buffer::Source::Bin => { if let Some(b) = gltf.blob.as_ref() { buffer_data.push(b.clone()); } }
8 _ => { buffer_data.push(Vec::new()); }
9 }
10 }
11 for mesh in gltf.meshes() {
12 for (i, prim) in mesh.primitives().enumerate() {
13 let reader = prim.reader(|b| buffer_data.get(b.index()).map(|d| d.as_slice()));
14 let has_tan = reader.read_tangents().is_some();
15 let has_norm = reader.read_normals().is_some();
16 let mat = prim.material();
17 let has_nmap = mat.normal_texture().is_some();
18 let has_mr = mat.pbr_metallic_roughness().metallic_roughness_texture().is_some();
19 let has_em = mat.emissive_texture().is_some();
20 let has_occl = mat.occlusion_texture().is_some();
21 println!("mesh {} prim {}: tangents={} normals={} normal_map={} mr_tex={} em_tex={} occl_tex={}", mesh.index(), i, has_tan, has_norm, has_nmap, has_mr, has_em, has_occl);
22 }
23 }
24}

Callers

nothing calls this directly

Calls 5

buffersMethod · 0.80
cloneMethod · 0.80
pushMethod · 0.45
getMethod · 0.45
indexMethod · 0.45

Tested by

no test coverage detected