diff --git a/source/blender/draw/engines/eevee_next/eevee_shader.cc b/source/blender/draw/engines/eevee_next/eevee_shader.cc index 4db4f2a9083..d21bc791f75 100644 --- a/source/blender/draw/engines/eevee_next/eevee_shader.cc +++ b/source/blender/draw/engines/eevee_next/eevee_shader.cc @@ -774,6 +774,8 @@ static bool can_use_default_cb(GPUMaterial *mat) { using namespace blender::gpu::shader; + const ::Material *blender_mat = GPU_material_get_material(mat); + uint64_t shader_uuid = GPU_material_uuid_get(mat); eMaterialPipeline pipeline_type; @@ -801,9 +803,11 @@ static bool can_use_default_cb(GPUMaterial *mat) displacement_type != eMaterialDisplacement::MAT_DISPLACEMENT_BUMP; bool has_transparency = GPU_material_flag_get(mat, GPU_MATFLAG_TRANSPARENT); bool has_shadow_transparency = has_transparency && transparent_shadows; + bool has_raytraced_transmission = blender_mat && (blender_mat->blend_flag & MA_BL_SS_REFRACTION); return (is_shadow_pass && (!has_vertex_displacement && !has_shadow_transparency)) || - (is_prepass && (!has_vertex_displacement && !has_transparency)); + (is_prepass && + (!has_vertex_displacement && !has_transparency && !has_raytraced_transmission)); } GPUMaterial *ShaderModule::material_default_shader_get(eMaterialPipeline pipeline_type,