diff --git a/modules/camera/src/vkcv/camera/TrackballCameraController.cpp b/modules/camera/src/vkcv/camera/TrackballCameraController.cpp
index 9498317f29a0c125360fbf73e3ea568099781f4e..201c6ecdc1c703dbcd53b7dc4b179c86576f2312 100644
--- a/modules/camera/src/vkcv/camera/TrackballCameraController.cpp
+++ b/modules/camera/src/vkcv/camera/TrackballCameraController.cpp
@@ -57,7 +57,7 @@ namespace vkcv::camera {
 		const glm::vec3 xAxis = glm::vec3(1.0f, 0.0f, 0.0f);
 	
 		const glm::mat4 rotationY = glm::rotate(glm::mat4(1.0f), glm::radians(yaw), yAxis);
-		const glm::mat4 rotationX = glm::rotate(rotationY, glm::radians(pitch), xAxis);
+		const glm::mat4 rotationX = glm::rotate(rotationY, -glm::radians(pitch), xAxis);
 		const glm::vec3 translation = glm::vec3(
 				rotationX * glm::vec4(0.0f, 0.0f, m_radius, 0.0f)
 		);