From 42f231e4a2366b161dfd08a6b480d5ac30a40246 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 29 Sep 2023 15:44:56 +0300 Subject: [PATCH] QmlDesigner: Fix 3D view grid color when there are objects behind it Fixes: QDS-10803 Change-Id: Ibbe1c9d308031b941df42750eb4f75cb2fe43c13 Reviewed-by: Mahmoud Badri Reviewed-by: Qt CI Patch Build Bot --- src/tools/qml2puppet/mockfiles/qt6/HelperGrid.qml | 4 ++++ .../qml2puppet/mockfiles/shaders/gridmaterial.frag | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/tools/qml2puppet/mockfiles/qt6/HelperGrid.qml b/src/tools/qml2puppet/mockfiles/qt6/HelperGrid.qml index e9d94b54c18..e189d064014 100644 --- a/src/tools/qml2puppet/mockfiles/qt6/HelperGrid.qml +++ b/src/tools/qml2puppet/mockfiles/qt6/HelperGrid.qml @@ -71,6 +71,7 @@ Node { orthoMode: grid.orthoMode } ] + opacity: 0.99 } Model { // Subdivision lines @@ -90,6 +91,7 @@ Node { orthoMode: grid.orthoMode } ] + opacity: 0.99 } Model { // Z Axis @@ -108,6 +110,7 @@ Node { orthoMode: grid.orthoMode } ] + opacity: 0.99 } Model { // X Axis readonly property bool _edit3dLocked: true // Make this non-pickable @@ -126,5 +129,6 @@ Node { orthoMode: grid.orthoMode } ] + opacity: 0.99 } } diff --git a/src/tools/qml2puppet/mockfiles/shaders/gridmaterial.frag b/src/tools/qml2puppet/mockfiles/shaders/gridmaterial.frag index a1ec3bffff2..7d785bc5312 100644 --- a/src/tools/qml2puppet/mockfiles/shaders/gridmaterial.frag +++ b/src/tools/qml2puppet/mockfiles/shaders/gridmaterial.frag @@ -19,9 +19,15 @@ void MAIN() if (depth > 90000.0) alpha *= clamp((100000.0 - depth) / 10000.0, 0, 1); - if (alpha > 0.01) - FRAGCOLOR = vec4(color.x * alpha, color.y * alpha, color.z * alpha, alpha); - else + if (alpha > 0.01) { + vec2 uv = FRAGCOORD.xy / vec2(textureSize(SCREEN_TEXTURE, 0)); + vec4 sc = texture(SCREEN_TEXTURE, uv); + if (sc.a == 0.0) + FRAGCOLOR = vec4(color.xyz * alpha, alpha); + else + FRAGCOLOR = vec4((color.xyz * alpha + sc.xyz * (1.0 - alpha)) * alpha, alpha); + } else { discard; + } } }