diff --git a/modules/camera/include/vkcv/camera/Camera.hpp b/modules/camera/include/vkcv/camera/Camera.hpp index ce32d3f8a0c6ee3e0dd882f24a9ac2d12c14a024..9d85df7dce6d043630fd9d39287cace8530dbd6a 100644 --- a/modules/camera/include/vkcv/camera/Camera.hpp +++ b/modules/camera/include/vkcv/camera/Camera.hpp @@ -75,7 +75,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 5c8892d2ff799209719347c53c7ebff9d734e090..3541b1a5bc1253c6b0f2b044d757341855a5e900 100644 --- a/modules/camera/src/vkcv/camera/Camera.cpp +++ b/modules/camera/src/vkcv/camera/Camera.cpp @@ -44,12 +44,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 8d2a611ad10e457164208b8024a4d862ee989a88..cc75cf1fa4eaf2f837cdb9a3f6039faeac7ecb9d 100644 --- a/projects/particle_simulation/src/main.cpp +++ b/projects/particle_simulation/src/main.cpp @@ -210,6 +210,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));