summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Leinonen <tony.leinonen@qt.io>2020-09-08 15:44:22 +0300
committerTony Leinonen <tony.leinonen@qt.io>2020-09-09 09:40:22 +0300
commit31c027428e8a2fa240b6b5c00f4410d59b971d08 (patch)
tree0076f23b27f034561013eb823e75e740dc0078fe
parent63605d23bd240a8c2682b9d7e66e91a313c71992 (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.cpp3
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);