X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcamera.cpp;fp=src%2Fcamera.cpp;h=4bbb0f12f0fadb6955bf230d99a88fa116d65355;hb=41e0223ec090142bf03066f4f5fc1f5005095072;hp=c5283bd7f77bf86729b688342265dc4919bab47f;hpb=66d7cf56cfbb565dd4700d94e5f338a39a40edeb;p=blank.git diff --git a/src/camera.cpp b/src/camera.cpp index c5283bd..4bbb0f1 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -13,8 +13,7 @@ Camera::Camera() , near_clip(0.1f) , far_clip(100.0f) , projection(glm::perspective(fov, aspect, near_clip, far_clip)) -, view(glm::inverse(Transform())) -, vp(projection) { +, view(glm::inverse(Transform())) { } @@ -49,7 +48,7 @@ void Camera::Clip(float near, float far) { } Ray Camera::Aim() const { - const glm::mat4 inv_vp(glm::inverse(vp)); + const glm::mat4 inv_vp(glm::inverse(projection * view)); glm::vec4 from = inv_vp * glm::vec4(0.0f, 0.0f, -1.0f, 1.0f); from /= from.w; glm::vec4 to = inv_vp * glm::vec4(0.0f, 0.0f, 1.0f, 1.0f); @@ -61,7 +60,6 @@ Ray Camera::Aim() const { void Camera::Update(int dt) { FPSController::Update(dt); view = glm::inverse(Transform()); - vp = projection * view; } void Camera::UpdateProjection() {