diff --git a/GrafikaProjekt/pliki/src/main.cpp b/GrafikaProjekt/pliki/src/main.cpp index 19dcf4c..142e491 100644 --- a/GrafikaProjekt/pliki/src/main.cpp +++ b/GrafikaProjekt/pliki/src/main.cpp @@ -22,6 +22,7 @@ Core::RenderContext sphereContext; glm::vec3 cameraPos = glm::vec3(0, 0, 5); glm::vec3 cameraDir; // Wektor "do przodu" kamery glm::vec3 cameraSide; // Wektor "w bok" kamery +glm::vec3 cameraUp; float cameraAngle = 0; int lastMouseX, lastMouseY, mouseX, mouseY; @@ -60,10 +61,11 @@ void mouse(int x, int y) glm::mat4 createCameraMatrix() { - rotation = glm::normalize(rotation * glm::angleAxis((float)(mouseX * 0.01), cameraDir) * glm::angleAxis((float)(mouseY * 0.01), cameraSide)); + rotation = glm::normalize(rotation * glm::angleAxis((float)(mouseX * 0.01), cameraUp) * glm::angleAxis((float)(mouseY * 0.01), cameraSide)); mouseX = mouseY = 0; cameraDir = glm::inverse(rotation) * glm::vec3(0, 0, -1); cameraSide = glm::inverse(rotation) * glm::vec3(-1, 0, 0); + cameraUp = glm::inverse(rotation) * glm::vec3(0, -1, 0); return Core::createViewMatrixQuat(cameraPos, rotation); }