void CFreeCamera::Update() { glm::mat4 R = GetMatrixUsingYawPitchRoll(yaw,pitch,roll); position+=translation; translation=glm::vec3(0); look = glm::vec3(R*glm::vec4(0,0,1,0)); glm::vec3 tgt = position+look; up = glm::vec3(R*glm::vec4(0,1,0,0)); right = glm::cross(look, up); V = glm::lookAt(position, tgt, up); //normalize //look = glm::normalize(look); //up = glm::normalize(up); //right = glm::normalize(right); }
void Camera::Update(float msec) { m_msec = msec; Move3D(); glm::mat4 rotationMatrix = GetMatrixUsingYawPitchRoll(m_yaw, m_pitch, 0.0f); m_position += m_translation; m_translation = glm::vec3(0.0f); m_lookAt = glm::vec3(rotationMatrix * glm::vec4(0.0f, 0.0f, 1.0f, 0.0f)); m_target = m_position + m_lookAt; m_up = glm::vec3(rotationMatrix * glm::vec4(0.0f, 1.0f, 0.0f, 0.0f)); m_right = glm::cross(m_up, m_lookAt); m_view = glm::lookAt(m_position, m_target, m_up); }
void FreeCamera::Update() { glm::mat4 R = GetMatrixUsingYawPitchRoll(_yaw, _pitch, _roll); _position += _translation; _translation = glm::vec3(0); _look = glm::vec3(R * glm::vec4(0,0,1,0)); glm::vec3 tgt = _position + _look; _up = glm::vec3(R * glm::vec4(0,1,0,0)); _right = glm::cross(_look, _up); _V = glm::lookAt(_position, tgt, _up); //normalize //look = glm::normalize(look); //up = glm::normalize(up); //right = glm::normalize(right); }