diff options
| author | 0undefined <oscar@nelin.dk> | 2025-06-30 04:41:15 +0000 |
|---|---|---|
| committer | 0undefined <oscar@nelin.dk> | 2025-06-30 04:41:45 +0000 |
| commit | fe0a06466adec45b1d957cb3cf408c917105a957 (patch) | |
| tree | f58eba630c89fde069775aa76aa7920aa82a7df8 | |
| parent | 9990e4e91d1bd985bb947d419d4b5400ac8ffde0 (diff) | |
Move some MVP calculation out of loop
| -rw-r--r-- | src/rendering/src/rendering.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/rendering/src/rendering.c b/src/rendering/src/rendering.c index 4296a7a..8932cfc 100644 --- a/src/rendering/src/rendering.c +++ b/src/rendering/src/rendering.c @@ -449,9 +449,11 @@ void render_present(Window* w) { mat4 view; // view vec3 angle; // viewing angle / direction of the camera + mat4 camera_matrix; glm_vec3_sub(c.pos, c.dir, angle); glm_lookat(c.pos, angle, GLM_YUP, view); + glm_mat4_mul(c.per, view, camera_matrix); for (i32 drawcall_idx = 0; drawcall_idx < drawcall_len; drawcall_idx++) { RenderDrawCall dc = drawcalls[drawcall_idx]; @@ -485,11 +487,8 @@ void render_present(Window* w) { model[3][1] = pos[1]; model[3][2] = pos[2]; - { // modelviewprojection = p * view * model - mat4 t; - glm_mat4_mul(view, model, t); - glm_mat4_mul(c.per, t, modelviewprojection); - } + // modelviewprojection = p * view * model + glm_mat4_mul(model, camera_matrix, modelviewprojection); // TODO: Do this only once during initialization gl->UniformMatrix4fv(o->mvp, 1, GL_FALSE, &modelviewprojection[0][0]); |
