diff options
author | metamuffin <metamuffin@disroot.org> | 2025-02-04 21:47:27 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-02-04 21:47:27 +0100 |
commit | 92ab896339692c7dab300ad4d11a94fa03ee3ef4 (patch) | |
tree | 2f9d911a7ec8ec7b6d658f22986bfeff00a3505b | |
parent | 8a61fe49761dd0aeff83495580e6b7f75df265d8 (diff) | |
download | weareserver-92ab896339692c7dab300ad4d11a94fa03ee3ef4.tar weareserver-92ab896339692c7dab300ad4d11a94fa03ee3ef4.tar.bz2 weareserver-92ab896339692c7dab300ad4d11a94fa03ee3ef4.tar.zst |
check joint length consistency
-rw-r--r-- | world/src/mesh.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/world/src/mesh.rs b/world/src/mesh.rs index b0b55b7..96976ce 100644 --- a/world/src/mesh.rs +++ b/world/src/mesh.rs @@ -17,7 +17,7 @@ use crate::{Args, TextureCache, load_texture}; use anyhow::Result; use gltf::{Mesh, Node, buffer::Data}; -use log::{debug, info}; +use log::{debug, info, warn}; use std::path::Path; use weareshared::{ Affine3A, Vec3A, @@ -46,11 +46,13 @@ pub fn import_mesh( } let reader = p.reader(|buf| Some(&buffers[buf.index()])); + let mut num_vertex = 0; let va_position = reader .read_positions() .map(|iter| { let a = iter.map(|[x, y, z]| vec3a(x, y, z)).collect::<Vec<_>>(); debug!("{} vertex positions", a.len()); + num_vertex = a.len(); store.set(&a) }) .transpose()?; @@ -81,6 +83,9 @@ pub fn import_mesh( .map(|iter| { let a = iter.into_u16().collect::<Vec<_>>(); debug!("{} vertex joint indecies", a.len()); + if a.len() != num_vertex { + warn!("joint index count does not vertex count") + } store.set(&a) }) .transpose()?; @@ -90,6 +95,9 @@ pub fn import_mesh( .map(|iter| { let a = iter.into_f32().collect::<Vec<_>>(); debug!("{} vertex joint weights", a.len()); + if a.len() != num_vertex { + warn!("joint weight count does not vertex count") + } store.set(&a) }) .transpose()?; |