2 Commits

Author SHA1 Message Date
adriangl f0e62a6d83 Update .gitignore 2025-10-02 12:41:05 +02:00
adriangl f7fcc2359b fix: correct glm::mat3 usage and add missing argument in draw_scene call 2025-10-02 12:11:22 +02:00
2 changed files with 6 additions and 4 deletions
-2
View File
@@ -3,7 +3,5 @@
*.pdf *.pdf
*.html *.html
source.zip source.zip
.aider*
flake.lock flake.lock
+6 -2
View File
@@ -149,14 +149,18 @@ unsafe fn draw_scene(node: &scene_graph::SceneNode, transform_loc: i32, normal_l
let mvp = view_projection * new_transform; let mvp = view_projection * new_transform;
gl::UniformMatrix4fv(transform_loc, 1, gl::FALSE, mvp.as_ptr()); gl::UniformMatrix4fv(transform_loc, 1, gl::FALSE, mvp.as_ptr());
let nm4 = glm::transpose(&glm::inverse(&new_transform)); let nm4 = glm::transpose(&glm::inverse(&new_transform));
let normal_matrix = glm::mat3(&nm4); let normal_matrix = glm::mat3(
nm4[(0,0)], nm4[(0,1)], nm4[(0,2)],
nm4[(1,0)], nm4[(1,1)], nm4[(1,2)],
nm4[(2,0)], nm4[(2,1)], nm4[(2,2)],
);
gl::UniformMatrix3fv(normal_loc, 1, gl::FALSE, normal_matrix.as_ptr()); gl::UniformMatrix3fv(normal_loc, 1, gl::FALSE, normal_matrix.as_ptr());
gl::BindVertexArray(node.vao_id); gl::BindVertexArray(node.vao_id);
gl::DrawElements(gl::TRIANGLES, node.index_count, gl::UNSIGNED_INT, ptr::null()); gl::DrawElements(gl::TRIANGLES, node.index_count, gl::UNSIGNED_INT, ptr::null());
} }
// Recurse to children // Recurse to children
for &child in &node.children { for &child in &node.children {
draw_scene(&*child, transform_loc, view_projection, &new_transform); draw_scene(&*child, transform_loc, normal_loc, view_projection, &new_transform);
} }
} }