Skip to content

Commit

Permalink
Merge pull request #91096 from BastiaanOlij/fix_gles3_shadow_to_opacity
Browse files Browse the repository at this point in the history
Fix issue in shadow to opacity
  • Loading branch information
akien-mga committed Apr 26, 2024
2 parents 2338d9b + d2d2274 commit 34ec486
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 29 deletions.
11 changes: 2 additions & 9 deletions drivers/gles3/shaders/scene.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -1859,23 +1859,16 @@ void main() {
#endif // !MODE_RENDER_DEPTH

#if defined(USE_SHADOW_TO_OPACITY)
#ifndef MODE_RENDER_DEPTH
alpha = min(alpha, clamp(length(ambient_light), 0.0, 1.0));

#if defined(ALPHA_SCISSOR_USED)
if (alpha < alpha_scissor) {
discard;
}
#else
#ifdef MODE_RENDER_DEPTH
#ifdef USE_OPAQUE_PREPASS

if (alpha < opaque_prepass_threshold) {
discard;
}
#endif // USE_OPAQUE_PREPASS
#endif // MODE_RENDER_DEPTH
#endif // !ALPHA_SCISSOR_USED

#endif // !MODE_RENDER_DEPTH
#endif // USE_SHADOW_TO_OPACITY

#ifdef MODE_RENDER_DEPTH
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2235,24 +2235,16 @@ void fragment_shader(in SceneData scene_data) {
}

#ifdef USE_SHADOW_TO_OPACITY
#ifndef MODE_RENDER_DEPTH
alpha = min(alpha, clamp(length(ambient_light), 0.0, 1.0));

#if defined(ALPHA_SCISSOR_USED)
if (alpha < alpha_scissor) {
discard;
}
#else
#ifdef MODE_RENDER_DEPTH
#ifdef USE_OPAQUE_PREPASS

if (alpha < scene_data.opaque_prepass_threshold) {
discard;
}

#endif // USE_OPAQUE_PREPASS
#endif // MODE_RENDER_DEPTH
#endif // ALPHA_SCISSOR_USED

#endif // !MODE_RENDER_DEPTH
#endif // USE_SHADOW_TO_OPACITY

#endif //!defined(MODE_RENDER_DEPTH) && !defined(MODE_UNSHADED)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1756,24 +1756,16 @@ void main() {
} //spot lights

#ifdef USE_SHADOW_TO_OPACITY
#ifndef MODE_RENDER_DEPTH
alpha = min(alpha, clamp(length(ambient_light), 0.0, 1.0));

#if defined(ALPHA_SCISSOR_USED)
if (alpha < alpha_scissor) {
discard;
}
#else
#ifdef MODE_RENDER_DEPTH
#ifdef USE_OPAQUE_PREPASS

if (alpha < scene_data.opaque_prepass_threshold) {
discard;
}

#endif // USE_OPAQUE_PREPASS
#endif // MODE_RENDER_DEPTH
#endif // !ALPHA_SCISSOR_USED

#endif // !MODE_RENDER_DEPTH
#endif // USE_SHADOW_TO_OPACITY

#endif //!defined(MODE_RENDER_DEPTH) && !defined(MODE_UNSHADED)
Expand Down

0 comments on commit 34ec486

Please sign in to comment.