diff options
author | Tony Leinonen <tony.leinonen@qt.io> | 2020-09-08 15:44:22 +0300 |
---|---|---|
committer | Tony Leinonen <tony.leinonen@qt.io> | 2020-09-09 09:40:22 +0300 |
commit | 31c027428e8a2fa240b6b5c00f4410d59b971d08 (patch) | |
tree | 0076f23b27f034561013eb823e75e740dc0078fe | |
parent | 63605d23bd240a8c2682b9d7e66e91a313c71992 (diff) |
Disable alpha test for screen blend mode
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 <kaj.gronholm@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
-rw-r--r-- | src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
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); |