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);
}
Пример #2
0
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);
}
Пример #3
0
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);
}