diff --git a/modules/camera/include/vkcv/camera/Camera.hpp b/modules/camera/include/vkcv/camera/Camera.hpp index dc9f2dcb3038655f51fb2404abc21f98a2120399..0d078fef65894bad104dc7f9a5e24a24eba0aa69 100644 --- a/modules/camera/include/vkcv/camera/Camera.hpp +++ b/modules/camera/include/vkcv/camera/Camera.hpp @@ -77,7 +77,7 @@ namespace vkcv::camera { * @brief Gets the current projection of the camera * @return The current projection matrix */ - const glm::mat4& getProjection() const; + glm::mat4 getProjection() const; /** * @brief Gets the model-view-projection matrix of the camera with y-axis-correction applied diff --git a/modules/camera/src/vkcv/camera/Camera.cpp b/modules/camera/src/vkcv/camera/Camera.cpp index e7ba79006e61e48439fb498af6d88bf978f15e3f..4f276180948f3301e8a2dce6483162645a060a33 100644 --- a/modules/camera/src/vkcv/camera/Camera.cpp +++ b/modules/camera/src/vkcv/camera/Camera.cpp @@ -45,12 +45,12 @@ namespace vkcv::camera { 0.0f, 0.0f, 0.0f, 1.0f ); - const glm::mat4& Camera::getProjection() const { + glm::mat4 Camera::getProjection() const { return y_correction * m_projection; } void Camera::setProjection(const glm::mat4& projection) { - m_projection = projection; + m_projection = glm::inverse(y_correction) * projection; } glm::mat4 Camera::getMVP() const { diff --git a/projects/particle_simulation/src/main.cpp b/projects/particle_simulation/src/main.cpp index b2eb5bc59581795502c0b7df0ed63eca57df01d6..262aa32d11e098b6371552afd547459c5682384b 100644 --- a/projects/particle_simulation/src/main.cpp +++ b/projects/particle_simulation/src/main.cpp @@ -201,6 +201,8 @@ int main(int argc, const char **argv) { glm::vec4 colorData = glm::vec4(1.0f, 1.0f, 0.0f, 1.0f); uint32_t camIndex0 = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT); uint32_t camIndex1 = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); + + cameraManager.setActiveCamera(1); cameraManager.getCamera(camIndex0).setPosition(glm::vec3(0, 0, -2)); cameraManager.getCamera(camIndex1).setPosition(glm::vec3(0.0f, 0.0f, -2.0f));