Skip to content
Snippets Groups Projects
Commit d54f0064 authored by Sebastian Gaida's avatar Sebastian Gaida
Browse files

[#35][Fix] remove setting of camera pos and front

removed camera pos and front and used temp vars to hold it till lookAt is called
parent 254e35cf
No related branches found
No related tags found
1 merge request!26Resolve "Kamera - Erstellung und Handling"
...@@ -90,12 +90,10 @@ namespace vkcv { ...@@ -90,12 +90,10 @@ namespace vkcv {
} }
void Camera::setPosition( glm::vec3 position ){ void Camera::setPosition( glm::vec3 position ){
// Syntax: Mat[column][row] m_view[3] = glm::vec4(0.0f,0.0f,0.0f,1.0f);
// project new position into camera coordinates glm::mat4 translation = glm::mat4(1.0f);
m_view[3] = glm::vec4(0.0f,0.0f,0.0f,1.0f); // loescht Position_cam aus Viewmatrix
glm::mat4 translation = glm::mat4(1.0f); // erzeugt Einheitsmatrix
translation[3] = glm::vec4(-position, 1.0f); translation[3] = glm::vec4(-position, 1.0f);
m_view = m_view * translation; // Viewmatrix = View * Translation m_view = m_view * translation;
} }
void Camera::movePosition( glm::vec3 translation ){ void Camera::movePosition( glm::vec3 translation ){
......
...@@ -14,7 +14,7 @@ namespace vkcv{ ...@@ -14,7 +14,7 @@ namespace vkcv{
m_cameraSpeed = 0.05f; m_cameraSpeed = 0.05f;
m_roll = 0.0; m_roll = 0.0;
m_pitch = 0.0; m_pitch = 0.0;
m_yaw = 90.0; m_yaw = 180.0;
m_lastX = width/2.0; m_lastX = width/2.0;
m_lastY = height/2.0; m_lastY = height/2.0;
bindCamera(); bindCamera();
...@@ -63,12 +63,13 @@ namespace vkcv{ ...@@ -63,12 +63,13 @@ namespace vkcv{
} }
glm::vec3 direction; glm::vec3 direction;
direction.x = cos(glm::radians(m_yaw)) * cos(glm::radians(m_pitch)); direction.x = sin(glm::radians(m_yaw)) * cos(glm::radians(m_pitch));
direction.y = sin(glm::radians(m_pitch)); direction.y = sin(glm::radians(m_pitch));
direction.z = sin(glm::radians(m_yaw)) * cos(glm::radians(m_pitch)); direction.z = cos(glm::radians(m_yaw)) * cos(glm::radians(m_pitch));
m_camera.setFront( glm::normalize(direction) ); glm::vec3 front = glm::normalize(direction);
m_camera.lookAt(m_camera.getPosition(), m_camera.getPosition() + m_camera.getFront(), m_up);
m_camera.lookAt(m_camera.getPosition(), m_camera.getPosition() + front, m_up);
} }
void CameraManager::scrollCallback(double offsetX, double offsetY) { void CameraManager::scrollCallback(double offsetX, double offsetY) {
...@@ -85,29 +86,24 @@ namespace vkcv{ ...@@ -85,29 +86,24 @@ namespace vkcv{
} }
void CameraManager::keyCallback(int key, int scancode, int action, int mods) { void CameraManager::keyCallback(int key, int scancode, int action, int mods) {
glm::vec3 newPos;
std::cout << m_camera.getFront().x << " " << m_camera.getFront().y << " " <<m_camera.getFront().z << std::endl;
switch (key) { switch (key) {
case GLFW_KEY_W: case GLFW_KEY_W:
//std::cout << "Move forward" << std::endl; newPos = m_camera.getPosition() + m_cameraSpeed * m_camera.getFront();
m_camera.movePosition(m_cameraSpeed * m_camera.getFront()); m_camera.lookAt(newPos, newPos + m_camera.getFront(), m_up);
m_camera.lookAt(m_camera.getPosition(), m_camera.getPosition() + m_camera.getFront(), m_up);
break; break;
case GLFW_KEY_S: case GLFW_KEY_S:
//std::cout << "Move left" << std::endl; newPos = m_camera.getPosition() -m_cameraSpeed * m_camera.getFront();
m_camera.movePosition(-m_cameraSpeed * m_camera.getFront()); m_camera.lookAt(newPos, newPos + m_camera.getFront(), m_up);
m_camera.lookAt(m_camera.getPosition(), m_camera.getPosition() + m_camera.getFront(), m_up);
break; break;
case GLFW_KEY_A: case GLFW_KEY_A:
//std::cout << "Move backward" << std::endl; newPos = m_camera.getPosition() -glm::normalize(glm::cross(m_camera.getFront(), m_up)) * m_cameraSpeed;
m_camera.movePosition(-glm::normalize(glm::cross(m_camera.getFront(), m_up)) * m_cameraSpeed); m_camera.lookAt(newPos, newPos + m_camera.getFront(), m_up);
m_camera.lookAt(m_camera.getPosition(), m_camera.getPosition() + m_camera.getFront(), m_up);
break; break;
case GLFW_KEY_D: case GLFW_KEY_D:
//std::cout << "Move right" << std::endl; newPos = m_camera.getPosition() + glm::normalize(glm::cross(m_camera.getFront(), m_up)) * m_cameraSpeed;
m_camera.movePosition(glm::normalize(glm::cross(m_camera.getFront(), m_up)) * m_cameraSpeed); m_camera.lookAt(newPos, newPos + m_camera.getFront(), m_up);
m_camera.lookAt(m_camera.getPosition(), m_camera.getPosition() + m_camera.getFront(), m_up);
break; break;
case GLFW_KEY_ESCAPE: case GLFW_KEY_ESCAPE:
glfwSetWindowShouldClose(m_window.getWindow(), 1); glfwSetWindowShouldClose(m_window.getWindow(), 1);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment