diff --git a/modules/camera/include/vkcv/camera/Camera.hpp b/modules/camera/include/vkcv/camera/Camera.hpp index 999ad35c47aa54ddec085c1efbb18e5a786f1690..aa0ec51995de8f8b432058f177fd2e6076c1bc4f 100644 --- a/modules/camera/include/vkcv/camera/Camera.hpp +++ b/modules/camera/include/vkcv/camera/Camera.hpp @@ -1,5 +1,7 @@ #pragma once +#define GLM_DEPTH_ZERO_TO_ONE +#define GLM_FORCE_LEFT_HANDED #include <glm/glm.hpp> #include <glm/gtc/matrix_transform.hpp> #include <glm/gtc/matrix_access.hpp> diff --git a/modules/camera/include/vkcv/camera/CameraManager.hpp b/modules/camera/include/vkcv/camera/CameraManager.hpp index b9ffdb9ed17827532818371d94639124c8baeec1..917d1915cf17b690ba0147516aded08409c99b16 100644 --- a/modules/camera/include/vkcv/camera/CameraManager.hpp +++ b/modules/camera/include/vkcv/camera/CameraManager.hpp @@ -67,10 +67,10 @@ namespace vkcv{ * @param[in] window The window * @param[in] width The width of the window * @param[in] height The height of the window - * @param[in] up The up vector of the camera. Per default: @code{.cpp} up = glm::vec3(0.0f, -1.0f, 0.0f) @endcode + * @param[in] up The up vector of the camera. Per default: @code{.cpp} up = glm::vec3(0.0f, 1.0f, 0.0f) @endcode * @param[in] position The position of the camera. Per default: @code{.cpp} position = glm::vec3(0.0f,0.0f,0.0f) @endcode */ - CameraManager(Window &window, float width, float height, glm::vec3 up = glm::vec3(0.0f,-1.0f,0.0f), glm::vec3 position = glm::vec3(0.0f,0.0f,0.0f)); + CameraManager(Window &window, float width, float height, glm::vec3 up = glm::vec3(0.0f,1.0f,0.0f), glm::vec3 position = glm::vec3(0.0f,0.0f,0.0f)); /** * @brief Gets the camera object diff --git a/modules/camera/src/vkcv/camera/Camera.cpp b/modules/camera/src/vkcv/camera/Camera.cpp index 2f7ccf93fef5c41325e7065efeed0a3ceca7a09a..dfda62db1633edf1595cb77b91923f3ea05af789 100644 --- a/modules/camera/src/vkcv/camera/Camera.cpp +++ b/modules/camera/src/vkcv/camera/Camera.cpp @@ -4,7 +4,7 @@ namespace vkcv { Camera::Camera(){ - m_up = glm::vec3(0.0f, -1.0f, 0.0f); + m_up = glm::vec3(0.0f, 1.0f, 0.0f); m_position = glm::vec3(0.0f, 0.0f, 0.0f); m_cameraSpeed = 2.f; @@ -154,8 +154,8 @@ namespace vkcv { void Camera::updatePosition(double deltaTime ){ m_position += (m_cameraSpeed * getFront() * static_cast<float> (m_forward) * static_cast<float>(deltaTime)); m_position -= (m_cameraSpeed * getFront() * static_cast<float> (m_backward) * static_cast<float>(deltaTime)); - m_position -= (glm::normalize(glm::cross(getFront(), m_up)) * m_cameraSpeed * static_cast<float> (m_left) * static_cast<float>(deltaTime)); - m_position += (glm::normalize(glm::cross(getFront(), m_up)) * m_cameraSpeed * static_cast<float> (m_right) * static_cast<float>(deltaTime)); + m_position += (glm::normalize(glm::cross(getFront(), m_up)) * m_cameraSpeed * static_cast<float> (m_left) * static_cast<float>(deltaTime)); + m_position -= (glm::normalize(glm::cross(getFront(), m_up)) * m_cameraSpeed * static_cast<float> (m_right) * static_cast<float>(deltaTime)); m_position -= m_up * m_cameraSpeed * static_cast<float> (m_top) * static_cast<float>(deltaTime); m_position += m_up * m_cameraSpeed * static_cast<float> (m_bottom) * static_cast<float>(deltaTime); } diff --git a/modules/camera/src/vkcv/camera/CameraManager.cpp b/modules/camera/src/vkcv/camera/CameraManager.cpp index a08684ec260ef098fe122498a51aeaf50cc74b1b..1358d39fd3f0d7a15ff67c9917bbc6bc7c13ead3 100644 --- a/modules/camera/src/vkcv/camera/CameraManager.cpp +++ b/modules/camera/src/vkcv/camera/CameraManager.cpp @@ -58,7 +58,6 @@ namespace vkcv{ } void CameraManager::keyCallback(int key, int scancode, int action, int mods) { - switch (key) { case GLFW_KEY_W: m_camera.moveForward(action); @@ -85,6 +84,7 @@ namespace vkcv{ break; } } + Camera& CameraManager::getCamera(){ return m_camera; } diff --git a/modules/camera/src/vkcv/camera/TrackballCamera.cpp b/modules/camera/src/vkcv/camera/TrackballCamera.cpp index e5ee35f5d3c65fb2a7abd2d424072ffb91c30ebe..e99540e93f4c4530ba7bd17ea85436fffb30649b 100644 --- a/modules/camera/src/vkcv/camera/TrackballCamera.cpp +++ b/modules/camera/src/vkcv/camera/TrackballCamera.cpp @@ -68,8 +68,8 @@ namespace vkcv { } void TrackballCamera::updatePosition(double deltaTime) { - glm::mat4 rotationY = glm::rotate(glm::mat4(1.0f), glm::radians(m_yaw), glm::vec3(0.0f, -1.0f, 0.0f)); - glm::mat4 rotationX = glm::rotate(rotationY, -glm::radians(m_pitch), glm::vec3(1.0f, 0.0f, 0.0f)); + glm::mat4 rotationY = glm::rotate(glm::mat4(1.0f), glm::radians(m_yaw), glm::vec3(0.0f, 1.0f, 0.0f)); + glm::mat4 rotationX = glm::rotate(rotationY, glm::radians(m_pitch), glm::vec3(1.0f, 0.0f, 0.0f)); glm::vec3 translate = glm::vec3(0.0f,0.0f,m_radius); translate = glm::vec3(rotationX * glm::vec4(translate, 0.0f)); m_position = m_center + translate;