diff options
author | metamuffin <metamuffin@disroot.org> | 2025-01-09 02:10:41 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-01-09 02:10:41 +0100 |
commit | 524f5d27020ca63d21cd5eca1120a1c71443e240 (patch) | |
tree | eb2f9376ccf7380cb265b77ffafa6bc862147833 | |
parent | c98498f5b6cb147bc506f0aba27065e98b08a8d8 (diff) | |
download | weareserver-524f5d27020ca63d21cd5eca1120a1c71443e240.tar weareserver-524f5d27020ca63d21cd5eca1120a1c71443e240.tar.bz2 weareserver-524f5d27020ca63d21cd5eca1120a1c71443e240.tar.zst |
import for g_transmission and tex_transmission
-rw-r--r-- | world/src/mesh.rs | 38 |
1 files 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 |