From 31c027428e8a2fa240b6b5c00f4410d59b971d08 Mon Sep 17 00:00:00 2001 From: Tony Leinonen Date: Tue, 8 Sep 2020 15:44:22 +0300 Subject: Disable alpha test for screen blend mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Transparent objects alpha test was set to true when its opacity was 100% which caused problems with screen blending mode. Task-number: QT3DS-4110 Change-Id: Ie12e36e442fb265cad6141022200e99b28a9c4cc Reviewed-by: Kaj Grönholm Reviewed-by: Tomi Korpipää Reviewed-by: Antti Määttä --- .../rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp index 54cb55f..dc1185c 100644 --- a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp +++ b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp @@ -824,7 +824,8 @@ namespace render { // Enable alpha test, but only if the whole object opacity is full // so parts of the object might be fully opaque if (renderableFlags & RenderPreparationResultFlagValues::HasTransparency - && subsetOpacity >= 1.0f && transparencyImagesHaveOpaquePixels) { + && subsetOpacity >= 1.0f && transparencyImagesHaveOpaquePixels + && theMaterial->m_BlendMode != DefaultMaterialBlendMode::Screen) { m_Renderer.DefaultMaterialShaderKeyProperties() .m_AlphaTestEnabled.SetValue(theGeneratedKey, true); renderableFlags.setAlphaTest(true); -- cgit v1.2.3