aboutsummaryrefslogtreecommitdiffstats
path: root/src/runtimerender/qssgrenderdefaultmaterialshadergenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtimerender/qssgrenderdefaultmaterialshadergenerator.cpp')
-rw-r--r--src/runtimerender/qssgrenderdefaultmaterialshadergenerator.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/runtimerender/qssgrenderdefaultmaterialshadergenerator.cpp b/src/runtimerender/qssgrenderdefaultmaterialshadergenerator.cpp
index 380f25ce..8e612584 100644
--- a/src/runtimerender/qssgrenderdefaultmaterialshadergenerator.cpp
+++ b/src/runtimerender/qssgrenderdefaultmaterialshadergenerator.cpp
@@ -362,11 +362,13 @@ static void generateShadowMapOcclusion(QSSGStageGeneratorBase &fragmentShader,
fragmentShader.addUniform(names.shadowControlStem, "vec4");
fragmentShader.addUniform(names.shadowMatrixStem, "mat4");
+ fragmentShader << " if (" << names.shadowControlStem << ".y > 0.01) {\n";
if (inType != QSSGRenderLight::Type::DirectionalLight) {
- fragmentShader << " qt_shadow_map_occl = qt_sampleCubemap(" << names.shadowCubeStem << ", " << names.shadowControlStem << ", " << names.shadowMatrixStem << ", " << lightVarNames.lightPos << ".xyz, qt_varWorldPos, vec2(1.0, " << names.shadowControlStem << ".z));\n";
+ fragmentShader << " qt_shadow_map_occl = qt_sampleCubemap(" << names.shadowCubeStem << ", " << names.shadowControlStem << ", " << names.shadowMatrixStem << ", " << lightVarNames.lightPos << ".xyz, qt_varWorldPos, vec2(1.0, " << names.shadowControlStem << ".z));\n";
} else {
- fragmentShader << " qt_shadow_map_occl = qt_sampleOrthographic(" << names.shadowMapStem << ", " << names.shadowControlStem << ", " << names.shadowMatrixStem << ", qt_varWorldPos, vec2(1.0, " << names.shadowControlStem << ".z));\n";
+ fragmentShader << " qt_shadow_map_occl = qt_sampleOrthographic(" << names.shadowMapStem << ", " << names.shadowControlStem << ", " << names.shadowMatrixStem << ", qt_varWorldPos, vec2(1.0, " << names.shadowControlStem << ".z));\n";
}
+ fragmentShader << " }\n";
} else {
fragmentShader << " qt_shadow_map_occl = 1.0;\n";
}