diff options
-rw-r--r-- | src/bin/meshes.rs | 2 | ||||
-rw-r--r-- | src/classes/mesh.rs | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/bin/meshes.rs b/src/bin/meshes.rs index 64fe91c..c6ce39d 100644 --- a/src/bin/meshes.rs +++ b/src/bin/meshes.rs @@ -71,7 +71,7 @@ fn main() -> anyhow::Result<()> { writeln!(obj, "v {x} {y} {z}")?; } for [a, b, c] in mesh.read_indecies() { - writeln!(obj, "f {a} {b} {c}")?; + writeln!(obj, "f {} {} {}", a + 1, b + 1, c + 1)?; } i += 1; } diff --git a/src/classes/mesh.rs b/src/classes/mesh.rs index 3883535..328af97 100644 --- a/src/classes/mesh.rs +++ b/src/classes/mesh.rs @@ -132,7 +132,8 @@ impl VertexData { .channels .iter() .filter(|c| c.stream == si) - .map(|c| c.dimension as usize * c.format.component_size()) + // The modulo operator here is a hack to fix normal with 52 dimensions to 4 + .map(|c| (c.dimension as usize % 48) * c.format.component_size()) .sum(); streams.push((offset, stride)); offset += stride * self.vertex_count as usize |