浏览代码

Merge pull request #12227 from hi-ogawa/fix-depth-draw-alpha-prepass-for-shadow

Fix depth draw alpha prepass for shadow
Rémi Verschelde 8 年之前
父节点
当前提交
cf5eded982
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      drivers/gles3/rasterizer_storage_gles3.cpp

+ 3 - 1
drivers/gles3/rasterizer_storage_gles3.cpp

@@ -2430,7 +2430,9 @@ void RasterizerStorageGLES3::_update_material(Material *material) {
 
 		if (material->shader && material->shader->mode == VS::SHADER_SPATIAL) {
 
-			if (!material->shader->spatial.uses_alpha && material->shader->spatial.blend_mode == Shader::Spatial::BLEND_MODE_MIX) {
+			Shader::Spatial spatial = material->shader->spatial;
+			if (spatial.blend_mode == Shader::Spatial::BLEND_MODE_MIX &&
+					(!spatial.uses_alpha || (spatial.uses_alpha && spatial.depth_draw_mode == Shader::Spatial::DEPTH_DRAW_ALPHA_PREPASS))) {
 				can_cast_shadow = true;
 			}