forked from Mirrorlandia_minetest/minetest
Fix jittery view bobbing at large map coordinates again. Wielded tool still has problems there
This commit is contained in:
parent
01f3ae1c50
commit
cbd2bcf102
@ -195,17 +195,16 @@ void Camera::update(LocalPlayer* player, f32 frametime, v2u32 screensize)
|
|||||||
|
|
||||||
// Compute absolute camera position and target
|
// Compute absolute camera position and target
|
||||||
m_headnode->getAbsoluteTransformation().transformVect(m_camera_position, rel_cam_pos);
|
m_headnode->getAbsoluteTransformation().transformVect(m_camera_position, rel_cam_pos);
|
||||||
m_headnode->getAbsoluteTransformation().transformVect(m_camera_direction, rel_cam_target);
|
m_headnode->getAbsoluteTransformation().rotateVect(m_camera_direction, rel_cam_target - rel_cam_pos);
|
||||||
m_camera_direction -= m_camera_position;
|
|
||||||
|
|
||||||
v3f abs_cam_up;
|
v3f abs_cam_up;
|
||||||
m_headnode->getAbsoluteTransformation().transformVect(abs_cam_up, rel_cam_pos + rel_cam_up);
|
m_headnode->getAbsoluteTransformation().rotateVect(abs_cam_up, rel_cam_up);
|
||||||
abs_cam_up -= m_camera_position;
|
|
||||||
|
|
||||||
// Set camera node transformation
|
// Set camera node transformation
|
||||||
m_cameranode->setPosition(m_camera_position);
|
m_cameranode->setPosition(m_camera_position);
|
||||||
m_cameranode->setUpVector(abs_cam_up);
|
m_cameranode->setUpVector(abs_cam_up);
|
||||||
m_cameranode->setTarget(m_camera_position + m_camera_direction);
|
// *100.0 helps in large map coordinates
|
||||||
|
m_cameranode->setTarget(m_camera_position + 100 * m_camera_direction);
|
||||||
|
|
||||||
// FOV and and aspect ratio
|
// FOV and and aspect ratio
|
||||||
m_aspect = (f32)screensize.X / (f32) screensize.Y;
|
m_aspect = (f32)screensize.X / (f32) screensize.Y;
|
||||||
|
Loading…
Reference in New Issue
Block a user