diff options
| author | Yuri Sizov <yuris@humnom.net> | 2023-07-21 17:54:50 +0200 |
|---|---|---|
| committer | Yuri Sizov <yuris@humnom.net> | 2023-07-21 17:54:50 +0200 |
| commit | 1e856b61aeda09eabb63657b478e600d40a306c6 (patch) | |
| tree | 2fce1c55a570ed5ee7a0dfe8dde49383a7d226e6 | |
| parent | 7573a458be868cad9270a99ab2b42ce057d25412 (diff) | |
| parent | 33e46aac13f35511ddb0a58f6441e3d8b7fe1f35 (diff) | |
| download | redot-engine-1e856b61aeda09eabb63657b478e600d40a306c6.tar.gz | |
Merge pull request #79624 from mandryskowski/patch-1
Revert the change of the limit for interpolation of F0 for dielectrics and metals for Screen Space Reflections
| -rw-r--r-- | servers/rendering/renderer_rd/shaders/effects/screen_space_reflection.glsl | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/servers/rendering/renderer_rd/shaders/effects/screen_space_reflection.glsl b/servers/rendering/renderer_rd/shaders/effects/screen_space_reflection.glsl index 1626244b0a..1e01d94533 100644 --- a/servers/rendering/renderer_rd/shaders/effects/screen_space_reflection.glsl +++ b/servers/rendering/renderer_rd/shaders/effects/screen_space_reflection.glsl @@ -263,7 +263,9 @@ void main() { // Schlick term. float metallic = texelFetch(source_metallic, ssC << 1, 0).w; - float f0 = mix(0.04, 0.37, metallic); // The default value of R0 is 0.04 and the maximum value is considered to be Germanium with R0 value of 0.37 + // F0 is the reflectance of normally incident light (perpendicular to the surface). + // Dielectric materials have a widely accepted default value of 0.04. We assume that metals reflect all light, so their F0 is 1.0. + float f0 = mix(0.04, 1.0, metallic); float m = clamp(1.0 - dot(normal, -view_dir), 0.0, 1.0); float m2 = m * m; m = m2 * m2 * m; // pow(m,5) |
