Skip to content
Snippets Groups Projects
Commit 569d101f authored by Richard Gustavsen's avatar Richard Gustavsen
Browse files

QDemonCamera: fix calculation error for positions other than 0,0

parent 08c4385a
No related branches found
No related tags found
No related merge requests found
Pipeline #3629 passed
...@@ -166,12 +166,12 @@ QVector2D QDemonCamera::worldToViewport(const QVector3D &worldPos) const ...@@ -166,12 +166,12 @@ QVector2D QDemonCamera::worldToViewport(const QVector3D &worldPos) const
return QVector2D(-1, -1); return QVector2D(-1, -1);
// Convert from left-handed to right-handed // Convert from left-handed to right-handed
QVector3D worldPosRightHand = worldPos * QVector3D(0, 0, -1); QVector4D worldPosRightHand(worldPos.x(), worldPos.y(), -worldPos.z(), 1);
// Transform position // Transform position
const QMatrix4x4 worldToCamera = m_cameraNode->globalTransform.inverted(); const QMatrix4x4 worldToCamera = m_cameraNode->globalTransform.inverted();
QMatrix4x4 projectionViewMatrix = m_cameraNode->projection * worldToCamera; QMatrix4x4 projectionViewMatrix = m_cameraNode->projection * worldToCamera;
QVector4D pos4d = mat44::transform(projectionViewMatrix, QVector4D(worldPosRightHand, 1)); QVector4D pos4d = mat44::transform(projectionViewMatrix, worldPosRightHand);
// Check if the position is visible in the viewport // Check if the position is visible in the viewport
if (pos4d.w() <= 0) if (pos4d.w() <= 0)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment