You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-11 13:10:58 +00:00
Fix issue in shadow to opacity
This commit is contained in:
@@ -1859,23 +1859,16 @@ void main() {
|
|||||||
#endif // !MODE_RENDER_DEPTH
|
#endif // !MODE_RENDER_DEPTH
|
||||||
|
|
||||||
#if defined(USE_SHADOW_TO_OPACITY)
|
#if defined(USE_SHADOW_TO_OPACITY)
|
||||||
|
#ifndef MODE_RENDER_DEPTH
|
||||||
alpha = min(alpha, clamp(length(ambient_light), 0.0, 1.0));
|
alpha = min(alpha, clamp(length(ambient_light), 0.0, 1.0));
|
||||||
|
|
||||||
#if defined(ALPHA_SCISSOR_USED)
|
#if defined(ALPHA_SCISSOR_USED)
|
||||||
if (alpha < alpha_scissor) {
|
if (alpha < alpha_scissor) {
|
||||||
discard;
|
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 // !ALPHA_SCISSOR_USED
|
||||||
|
|
||||||
|
#endif // !MODE_RENDER_DEPTH
|
||||||
#endif // USE_SHADOW_TO_OPACITY
|
#endif // USE_SHADOW_TO_OPACITY
|
||||||
|
|
||||||
#ifdef MODE_RENDER_DEPTH
|
#ifdef MODE_RENDER_DEPTH
|
||||||
|
|||||||
@@ -2235,24 +2235,16 @@ void fragment_shader(in SceneData scene_data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_SHADOW_TO_OPACITY
|
#ifdef USE_SHADOW_TO_OPACITY
|
||||||
|
#ifndef MODE_RENDER_DEPTH
|
||||||
alpha = min(alpha, clamp(length(ambient_light), 0.0, 1.0));
|
alpha = min(alpha, clamp(length(ambient_light), 0.0, 1.0));
|
||||||
|
|
||||||
#if defined(ALPHA_SCISSOR_USED)
|
#if defined(ALPHA_SCISSOR_USED)
|
||||||
if (alpha < alpha_scissor) {
|
if (alpha < alpha_scissor) {
|
||||||
discard;
|
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 // ALPHA_SCISSOR_USED
|
||||||
|
|
||||||
|
#endif // !MODE_RENDER_DEPTH
|
||||||
#endif // USE_SHADOW_TO_OPACITY
|
#endif // USE_SHADOW_TO_OPACITY
|
||||||
|
|
||||||
#endif //!defined(MODE_RENDER_DEPTH) && !defined(MODE_UNSHADED)
|
#endif //!defined(MODE_RENDER_DEPTH) && !defined(MODE_UNSHADED)
|
||||||
|
|||||||
@@ -1756,24 +1756,16 @@ void main() {
|
|||||||
} //spot lights
|
} //spot lights
|
||||||
|
|
||||||
#ifdef USE_SHADOW_TO_OPACITY
|
#ifdef USE_SHADOW_TO_OPACITY
|
||||||
|
#ifndef MODE_RENDER_DEPTH
|
||||||
alpha = min(alpha, clamp(length(ambient_light), 0.0, 1.0));
|
alpha = min(alpha, clamp(length(ambient_light), 0.0, 1.0));
|
||||||
|
|
||||||
#if defined(ALPHA_SCISSOR_USED)
|
#if defined(ALPHA_SCISSOR_USED)
|
||||||
if (alpha < alpha_scissor) {
|
if (alpha < alpha_scissor) {
|
||||||
discard;
|
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 // !ALPHA_SCISSOR_USED
|
||||||
|
|
||||||
|
#endif // !MODE_RENDER_DEPTH
|
||||||
#endif // USE_SHADOW_TO_OPACITY
|
#endif // USE_SHADOW_TO_OPACITY
|
||||||
|
|
||||||
#endif //!defined(MODE_RENDER_DEPTH) && !defined(MODE_UNSHADED)
|
#endif //!defined(MODE_RENDER_DEPTH) && !defined(MODE_UNSHADED)
|
||||||
|
|||||||
Reference in New Issue
Block a user