From 524f5d27020ca63d21cd5eca1120a1c71443e240 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Thu, 9 Jan 2025 02:10:41 +0100 Subject: import for g_transmission and tex_transmission --- world/src/mesh.rs | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/world/src/mesh.rs b/world/src/mesh.rs index 6a295c7..3190c28 100644 --- a/world/src/mesh.rs +++ b/world/src/mesh.rs @@ -179,6 +179,22 @@ pub fn import_mesh( webp, )?); } + let mut tex_transmission = None; + if let Some(tex) = p + .material() + .transmission() + .map(|t| t.transmission_texture()) + .flatten() + { + tex_transmission = Some(load_texture( + "transmission", + &store, + path_base, + &buffers, + &tex.texture().source().source(), + webp, + )?); + } let mut tex_roughness = None; let mut tex_metallic = None; if let Some(tex) = p @@ -214,10 +230,10 @@ pub fn import_mesh( None }; let g_alpha = if base_color[3] != 1. { - info!("global transmission is {}", base_color[3]); + info!("global alpha is {}", base_color[3]); Some(base_color[3]) } else { - debug!("global transmission pruned"); + debug!("global alpha pruned"); None }; @@ -233,12 +249,27 @@ pub fn import_mesh( None }; + let transmission = p + .material() + .transmission() + .map(|t| t.transmission_factor()) + .unwrap_or(0.); + + let g_transmission = if transmission != 0. { + info!("global transmission is {transmission}"); + Some(transmission) + } else { + debug!("global transmission pruned"); + None + }; + let mesh = store.set(&MeshPart { g_albedo, g_alpha, g_metallic, g_roughness, g_emission, + g_transmission, va_position, va_normal, va_texcoord, @@ -250,9 +281,8 @@ pub fn import_mesh( tex_metallic, tex_alpha, tex_emission, + tex_transmission, index, - g_transmission: None, - tex_transmission: None, va_transmission: None, va_emission: None, // not supported by gltf va_metallic: None, // not supported by gltf -- cgit v1.2.3-70-g09d2