diff --git a/source/engines/opengl_engine/traits/camera_trait.cpp b/source/engines/opengl_engine/traits/camera_trait.cpp index 24970cb..d034bef 100644 --- a/source/engines/opengl_engine/traits/camera_trait.cpp +++ b/source/engines/opengl_engine/traits/camera_trait.cpp @@ -9,11 +9,10 @@ namespace omath::opengl_engine ViewAngles CameraTrait::calc_look_at_angle(const Vector3& cam_origin, const Vector3& look_at) noexcept { - const auto distance = cam_origin.distance_to(look_at); - const auto delta = look_at - cam_origin; + const auto direction = (look_at - cam_origin).normalized(); - return {PitchAngle::from_radians(std::asin(delta.y / distance)), - YawAngle::from_radians(std::atan2(delta.x, -delta.z)), RollAngle::from_radians(0.f)}; + return {PitchAngle::from_radians(std::asin(direction.y)), + YawAngle::from_radians(-std::atan2(direction.x, -direction.z)), RollAngle::from_radians(0.f)}; } Mat4X4 CameraTrait::calc_view_matrix(const ViewAngles& angles, const Vector3& cam_origin) noexcept {