From 569d101f56aa18bfde1fb6b6c52d53b76a11c637 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen <richard.gustavsen@qt.io> Date: Fri, 28 Jun 2019 10:26:10 +0200 Subject: [PATCH] QDemonCamera: fix calculation error for positions other than 0,0 --- src/quick3d/qdemoncamera.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/quick3d/qdemoncamera.cpp b/src/quick3d/qdemoncamera.cpp index e742b154..3167b233 100644 --- a/src/quick3d/qdemoncamera.cpp +++ b/src/quick3d/qdemoncamera.cpp @@ -166,12 +166,12 @@ QVector2D QDemonCamera::worldToViewport(const QVector3D &worldPos) const return QVector2D(-1, -1); // 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 const QMatrix4x4 worldToCamera = m_cameraNode->globalTransform.inverted(); 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 if (pos4d.w() <= 0) -- GitLab