diff --git a/drivers/gles3/shaders/scene.glsl b/drivers/gles3/shaders/scene.glsl index aa68febec8fe..7cba77be2ff4 100644 --- a/drivers/gles3/shaders/scene.glsl +++ b/drivers/gles3/shaders/scene.glsl @@ -1039,17 +1039,16 @@ void main() { if (alpha < alpha_scissor_threshold) { discard; } -#endif // ALPHA_SCISSOR_USED - +#else +#ifdef MODE_RENDER_DEPTH #ifdef USE_OPAQUE_PREPASS -#if !defined(ALPHA_SCISSOR_USED) if (alpha < opaque_prepass_threshold) { discard; } - -#endif // not ALPHA_SCISSOR_USED #endif // USE_OPAQUE_PREPASS +#endif // MODE_RENDER_DEPTH +#endif // !ALPHA_SCISSOR_USED #endif // !USE_SHADOW_TO_OPACITY @@ -1270,17 +1269,16 @@ void main() { if (alpha < alpha_scissor) { discard; } -#endif // ALPHA_SCISSOR_USED - +#else +#ifdef MODE_RENDER_DEPTH #ifdef USE_OPAQUE_PREPASS -#if !defined(ALPHA_SCISSOR_USED) if (alpha < opaque_prepass_threshold) { discard; } - -#endif // not ALPHA_SCISSOR_USED #endif // USE_OPAQUE_PREPASS +#endif // MODE_RENDER_DEPTH +#endif // !ALPHA_SCISSOR_USED #endif // USE_SHADOW_TO_OPACITY diff --git a/drivers/gles3/storage/material_storage.cpp b/drivers/gles3/storage/material_storage.cpp index d0746a8fc80a..aa6319f0ef00 100644 --- a/drivers/gles3/storage/material_storage.cpp +++ b/drivers/gles3/storage/material_storage.cpp @@ -1338,7 +1338,7 @@ MaterialStorage::MaterialStorage() { actions.render_mode_defines["cull_front"] = "#define DO_SIDE_CHECK\n"; actions.render_mode_defines["cull_disabled"] = "#define DO_SIDE_CHECK\n"; actions.render_mode_defines["particle_trails"] = "#define USE_PARTICLE_TRAILS\n"; - actions.render_mode_defines["depth_draw_opaque"] = "#define USE_OPAQUE_PREPASS\n"; + actions.render_mode_defines["depth_prepass_alpha"] = "#define USE_OPAQUE_PREPASS\n"; bool force_lambert = GLOBAL_GET("rendering/shading/overrides/force_lambert_over_burley"); diff --git a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp index 17e738890068..377aab1354e5 100644 --- a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp +++ b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp @@ -701,7 +701,7 @@ void SceneShaderForwardClustered::init(const String p_defines) { actions.render_mode_defines["cull_front"] = "#define DO_SIDE_CHECK\n"; actions.render_mode_defines["cull_disabled"] = "#define DO_SIDE_CHECK\n"; actions.render_mode_defines["particle_trails"] = "#define USE_PARTICLE_TRAILS\n"; - actions.render_mode_defines["depth_draw_opaque"] = "#define USE_OPAQUE_PREPASS\n"; + actions.render_mode_defines["depth_prepass_alpha"] = "#define USE_OPAQUE_PREPASS\n"; bool force_lambert = GLOBAL_GET("rendering/shading/overrides/force_lambert_over_burley"); diff --git a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp index e432dc87d502..e4498ac533f3 100644 --- a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp +++ b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp @@ -589,7 +589,7 @@ void SceneShaderForwardMobile::init(const String p_defines) { actions.render_mode_defines["cull_front"] = "#define DO_SIDE_CHECK\n"; actions.render_mode_defines["cull_disabled"] = "#define DO_SIDE_CHECK\n"; actions.render_mode_defines["particle_trails"] = "#define USE_PARTICLE_TRAILS\n"; - actions.render_mode_defines["depth_draw_opaque"] = "#define USE_OPAQUE_PREPASS\n"; + actions.render_mode_defines["depth_prepass_alpha"] = "#define USE_OPAQUE_PREPASS\n"; bool force_lambert = GLOBAL_GET("rendering/shading/overrides/force_lambert_over_burley"); if (!force_lambert) { diff --git a/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl b/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl index 8a7008492e18..9214a953aae6 100644 --- a/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl +++ b/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl @@ -875,11 +875,15 @@ void fragment_shader(in SceneData scene_data) { alpha = compute_alpha_antialiasing_edge(alpha, alpha_texture_coordinate, alpha_antialiasing_edge); #endif // ALPHA_ANTIALIASING_EDGE_USED +#ifdef MODE_RENDER_DEPTH #ifdef USE_OPAQUE_PREPASS +#ifndef ALPHA_SCISSOR_USED if (alpha < scene_data.opaque_prepass_threshold) { discard; } +#endif // !ALPHA_SCISSOR_USED #endif // USE_OPAQUE_PREPASS +#endif // MODE_RENDER_DEPTH #endif // !USE_SHADOW_TO_OPACITY @@ -2038,8 +2042,8 @@ void fragment_shader(in SceneData scene_data) { if (alpha < alpha_scissor) { discard; } -#endif // ALPHA_SCISSOR_USED - +#else +#ifdef MODE_RENDER_DEPTH #ifdef USE_OPAQUE_PREPASS if (alpha < scene_data.opaque_prepass_threshold) { @@ -2047,6 +2051,8 @@ void fragment_shader(in SceneData scene_data) { } #endif // USE_OPAQUE_PREPASS +#endif // MODE_RENDER_DEPTH +#endif // ALPHA_SCISSOR_USED #endif // USE_SHADOW_TO_OPACITY diff --git a/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl b/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl index 5f6e4a8c286d..b63eea14013e 100644 --- a/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl +++ b/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl @@ -817,11 +817,15 @@ void main() { alpha = compute_alpha_antialiasing_edge(alpha, alpha_texture_coordinate, alpha_antialiasing_edge); #endif // ALPHA_ANTIALIASING_EDGE_USED +#ifdef MODE_RENDER_DEPTH #ifdef USE_OPAQUE_PREPASS +#ifndef ALPHA_SCISSOR_USED if (alpha < scene_data.opaque_prepass_threshold) { discard; } +#endif // !ALPHA_SCISSOR_USED #endif // USE_OPAQUE_PREPASS +#endif // MODE_RENDER_DEPTH #endif // !USE_SHADOW_TO_OPACITY @@ -1685,8 +1689,8 @@ void main() { if (alpha < alpha_scissor) { discard; } -#endif // ALPHA_SCISSOR_USED - +#else +#ifdef MODE_RENDER_DEPTH #ifdef USE_OPAQUE_PREPASS if (alpha < scene_data.opaque_prepass_threshold) { @@ -1694,6 +1698,8 @@ void main() { } #endif // USE_OPAQUE_PREPASS +#endif // MODE_RENDER_DEPTH +#endif // !ALPHA_SCISSOR_USED #endif // USE_SHADOW_TO_OPACITY