diff options
author | metamuffin <metamuffin@disroot.org> | 2025-01-10 03:11:29 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-01-10 03:11:29 +0100 |
commit | 5d935c26589c014e6dc2941481988abf50e51fdf (patch) | |
tree | bc679c9e6ef6783749d3413c0e8368979dbb6b15 /client/src/camera.rs | |
parent | 3ecd4588d4aa85a93a06aa5a1a3a60b918a72557 (diff) | |
download | weareserver-5d935c26589c014e6dc2941481988abf50e51fdf.tar weareserver-5d935c26589c014e6dc2941481988abf50e51fdf.tar.bz2 weareserver-5d935c26589c014e6dc2941481988abf50e51fdf.tar.zst |
fix triple inverted projection madness
Diffstat (limited to 'client/src/camera.rs')
-rw-r--r-- | client/src/camera.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/client/src/camera.rs b/client/src/camera.rs index d7a69c5..f5a911b 100644 --- a/client/src/camera.rs +++ b/client/src/camera.rs @@ -33,15 +33,15 @@ impl Camera { } } pub fn update(&mut self, input_move: Vec3, input_rot: Vec2, dt: f32) { - self.pos += self.rotation_mat() * (-vec3(input_move.z, input_move.y, input_move.x) * dt); - self.rot.x += input_rot.x * 0.002; - self.rot.y += input_rot.y * 0.002; + self.pos += self.rotation_mat() * (vec3(input_move.z, input_move.y, -input_move.x) * dt); + self.rot.x += input_rot.x * -0.002; + self.rot.y += input_rot.y * -0.002; } pub fn rotation_mat(&self) -> Mat3 { Mat3::from_euler(EulerRot::YXZ, self.rot.x, self.rot.y, self.rot.z) } pub fn to_matrix(&self) -> Mat4 { - Mat4::perspective_infinite_reverse_rh(self.fov, self.aspect, 0.1) + Mat4::perspective_rh(self.fov, self.aspect, 0.1, 100.) * Mat4::from_mat3(self.rotation_mat().inverse()) * Mat4::from_translation(-self.pos) } |