diff --git a/modules/camera/src/vkcv/camera/TrackballCamera.cpp b/modules/camera/src/vkcv/camera/TrackballCamera.cpp
index fb392d1b10d7a01c3cae90ea4858759a372bd58f..c7a95307195842245892e4b10c47a3326a112a29 100644
--- a/modules/camera/src/vkcv/camera/TrackballCamera.cpp
+++ b/modules/camera/src/vkcv/camera/TrackballCamera.cpp
@@ -69,7 +69,7 @@ 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 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;