diff --git a/.gitignore b/.gitignore index 5081f6a..a353884 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,5 @@ *.pdf *.html source.zip - -.aider* flake.lock diff --git a/src/main.rs b/src/main.rs index ca3d4d8..e92ed95 100644 --- a/src/main.rs +++ b/src/main.rs @@ -149,14 +149,18 @@ unsafe fn draw_scene(node: &scene_graph::SceneNode, transform_loc: i32, normal_l let mvp = view_projection * new_transform; gl::UniformMatrix4fv(transform_loc, 1, gl::FALSE, mvp.as_ptr()); 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::BindVertexArray(node.vao_id); gl::DrawElements(gl::TRIANGLES, node.index_count, gl::UNSIGNED_INT, ptr::null()); } // Recurse to 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); } }