summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Locurcio <hugo.locurcio@hugo.pro>2021-10-07 17:57:49 +0200
committerHugo Locurcio <hugo.locurcio@hugo.pro>2021-10-07 17:59:55 +0200
commit0269d8e871e9df663af7ee90cb4156fb3a6288f8 (patch)
tree29721e1e5136b5e7fb4351b76cc1cbcb4572a105
parentf323d25dd3ba2be5ff491d34df2fbcc3b5ab1efc (diff)
Clamp Environment's SSR fade-in and fade-out to positive values
Negative values result in rendering glitches.
-rw-r--r--doc/classes/Environment.xml4
-rw-r--r--scene/resources/environment.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/doc/classes/Environment.xml b/doc/classes/Environment.xml
index 2c4e5ea886..8231a90438 100644
--- a/doc/classes/Environment.xml
+++ b/doc/classes/Environment.xml
@@ -204,10 +204,10 @@
If [code]true[/code], screen-space reflections are enabled. Screen-space reflections are more accurate than reflections from [VoxelGI]s or [ReflectionProbe]s, but are slower and can't reflect surfaces occluded by others.
</member>
<member name="ss_reflections_fade_in" type="float" setter="set_ssr_fade_in" getter="get_ssr_fade_in" default="0.15">
- The fade-in distance for screen-space reflections. Affects the area from the reflected material to the screen-space reflection).
+ The fade-in distance for screen-space reflections. Affects the area from the reflected material to the screen-space reflection). Only positive values are valid (negative values will be clamped to [code]0.0[/code]).
</member>
<member name="ss_reflections_fade_out" type="float" setter="set_ssr_fade_out" getter="get_ssr_fade_out" default="2.0">
- The fade-out distance for screen-space reflections. Affects the area from the screen-space reflection to the "global" reflection.
+ The fade-out distance for screen-space reflections. Affects the area from the screen-space reflection to the "global" reflection. Only positive values are valid (negative values will be clamped to [code]0.0[/code]).
</member>
<member name="ss_reflections_max_steps" type="int" setter="set_ssr_max_steps" getter="get_ssr_max_steps" default="64">
The maximum number of steps for screen-space reflections. Higher values are slower.
diff --git a/scene/resources/environment.cpp b/scene/resources/environment.cpp
index cab6c0378a..6980b9e996 100644
--- a/scene/resources/environment.cpp
+++ b/scene/resources/environment.cpp
@@ -302,7 +302,7 @@ int Environment::get_ssr_max_steps() const {
}
void Environment::set_ssr_fade_in(float p_fade_in) {
- ssr_fade_in = p_fade_in;
+ ssr_fade_in = MAX(p_fade_in, 0.0f);
_update_ssr();
}
@@ -311,7 +311,7 @@ float Environment::get_ssr_fade_in() const {
}
void Environment::set_ssr_fade_out(float p_fade_out) {
- ssr_fade_out = p_fade_out;
+ ssr_fade_out = MAX(p_fade_out, 0.0f);
_update_ssr();
}