QmlDesigner: Fix 3D view grid color when there are objects behind it

Fixes: QDS-10803
Change-Id: Ibbe1c9d308031b941df42750eb4f75cb2fe43c13
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
This commit is contained in:
Miikka Heikkinen
2023-09-29 15:44:56 +03:00
parent fc03a77ee1
commit 42f231e4a2
2 changed files with 13 additions and 3 deletions

View File

@@ -71,6 +71,7 @@ Node {
orthoMode: grid.orthoMode orthoMode: grid.orthoMode
} }
] ]
opacity: 0.99
} }
Model { // Subdivision lines Model { // Subdivision lines
@@ -90,6 +91,7 @@ Node {
orthoMode: grid.orthoMode orthoMode: grid.orthoMode
} }
] ]
opacity: 0.99
} }
Model { // Z Axis Model { // Z Axis
@@ -108,6 +110,7 @@ Node {
orthoMode: grid.orthoMode orthoMode: grid.orthoMode
} }
] ]
opacity: 0.99
} }
Model { // X Axis Model { // X Axis
readonly property bool _edit3dLocked: true // Make this non-pickable readonly property bool _edit3dLocked: true // Make this non-pickable
@@ -126,5 +129,6 @@ Node {
orthoMode: grid.orthoMode orthoMode: grid.orthoMode
} }
] ]
opacity: 0.99
} }
} }

View File

@@ -19,9 +19,15 @@ void MAIN()
if (depth > 90000.0) if (depth > 90000.0)
alpha *= clamp((100000.0 - depth) / 10000.0, 0, 1); alpha *= clamp((100000.0 - depth) / 10000.0, 0, 1);
if (alpha > 0.01) if (alpha > 0.01) {
FRAGCOLOR = vec4(color.x * alpha, color.y * alpha, color.z * alpha, alpha); 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 else
FRAGCOLOR = vec4((color.xyz * alpha + sc.xyz * (1.0 - alpha)) * alpha, alpha);
} else {
discard; discard;
} }
}
} }