routes
[carveJwlIkooP6JGAAIwe30JlM.git] / scene.h
diff --git a/scene.h b/scene.h
index 3e3829ecc526c3299cdb9bc8b69db7df09468ac7..aaecfcce803f3fe04b6af604b83600bb002ac071 100644 (file)
--- a/scene.h
+++ b/scene.h
@@ -114,6 +114,12 @@ static void scene_add_submesh( scene *pscene, mdl_header *mdl,
          &pscene->vertex_cap, sm->vertex_count, sizeof(mdl_vert) );
    pscene->indices = buffer_reserve( pscene->indices, pscene->indice_count,
          &pscene->indice_cap, sm->indice_count, sizeof(u32) );
+
+   m3x3f normal_matrix;
+   m3x3_copy( transform, normal_matrix );
+   v3_normalize( normal_matrix[0] );
+   v3_normalize( normal_matrix[1] );
+   v3_normalize( normal_matrix[2] );
    
    /* Transform and place vertices */
    mdl_vert *src_verts = mdl_submesh_vertices( mdl, sm );
@@ -130,7 +136,7 @@ static void scene_add_submesh( scene *pscene, mdl_header *mdl,
                *src = &src_verts[ i ];
 
       m4x3_mulv( transform, src->co, pvert->co );
-      m3x3_mulv( transform, src->norm, pvert->norm );
+      m3x3_mulv( normal_matrix, src->norm, pvert->norm );
 
       v4_copy( src->colour, pvert->colour );
       v2_copy( src->uv, pvert->uv );