diff --git a/castle b/castle index e019470..6c9a786 160000 --- a/castle +++ b/castle @@ -1 +1 @@ -Subproject commit e01947068718cad15ac3f5fa0dce97059d9157aa +Subproject commit 6c9a786926ce0cebf94961bf70245c26e37f6ff7 diff --git a/src/Game.zig b/src/Game.zig index f3b2637..2f0de07 100644 --- a/src/Game.zig +++ b/src/Game.zig @@ -780,10 +780,9 @@ fn render(self: *Game) !void { const camera_yscale = 1.0 / @tan(0.5 * self.player.vertical_fov_deg * std.math.rad_per_deg); const camera_xscale = camera_yscale / camera_aspect_ratio; - const matrix_ws_to_vs = vm.Matrix4x4.mulMatrixAffine( - .initRotation(camera_rotation), // TODO This is wrong - it should be correct when inverted - .initTranslation(camera_position.negate()), - ); + const matrix_ws_to_vs = vm.Matrix4x4 + .initTranslationRotation(camera_position, camera_rotation) + .inverseOrthonormal(); // zig fmt: off const matrix_vs_to_cs = vm.Matrix4x4.init(