From 3e2da8e584b082135ca7eeba624b0e362e111e6b Mon Sep 17 00:00:00 2001 From: "Jonathan \"Geenz\" Goodman" Date: Sat, 22 Feb 2025 14:17:43 -0500 Subject: Accidental double linearization, try roughness ^2 for water punctual light. --- indra/newview/app_settings/shaders/class3/environment/waterF.glsl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'indra/newview/app_settings/shaders/class3') diff --git a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl index 35b2f8bd10..2c87937906 100644 --- a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl +++ b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl @@ -25,7 +25,7 @@ // class3/environment/waterF.glsl -#define WATER_MINIMAL 1 +#define WATER_MINIMAL_PLUS 1 out vec4 frag_color; @@ -255,7 +255,7 @@ void main() shadow = sampleDirectionalShadow(pos.xyz, norm.xyz, distort); #endif - vec3 sunlit_linear = srgb_to_linear(sunlit); + vec3 sunlit_linear = (sunlit); float fade = 1; #ifdef TRANSPARENT_WATER float depth = texture(depthMap, distort).r; @@ -315,7 +315,7 @@ void main() vec3 diffPunc = vec3(0); vec3 specPunc = vec3(0); - pbrPunctual(diffuseColor, specularColor, perceptualRoughness, metallic, normalize(wavef+up*max(dist, 32.0)/32.0*(1.0-vdu)), v, normalize(light_dir), nl, diffPunc, specPunc); + pbrPunctual(diffuseColor, specularColor, perceptualRoughness * perceptualRoughness, metallic, normalize(wavef+up*max(dist, 32.0)/32.0*(1.0-vdu)), v, normalize(light_dir), nl, diffPunc, specPunc); vec3 punctual = clamp(nl * (diffPunc + specPunc), vec3(0), vec3(10)) * sunlit_linear * shadow; radiance *= df2.y; -- cgit v1.2.3 From d2fd2f49e346fb0f7966de592350607301292d44 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Geenz\" Goodman" Date: Sun, 23 Feb 2025 12:20:11 -0500 Subject: Cleanup --- indra/newview/app_settings/shaders/class3/environment/waterF.glsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/app_settings/shaders/class3') diff --git a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl index 2c87937906..41c0d95b0e 100644 --- a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl +++ b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl @@ -255,7 +255,7 @@ void main() shadow = sampleDirectionalShadow(pos.xyz, norm.xyz, distort); #endif - vec3 sunlit_linear = (sunlit); + vec3 sunlit_linear = sunlit; float fade = 1; #ifdef TRANSPARENT_WATER float depth = texture(depthMap, distort).r; -- cgit v1.2.3 From 892628c7f3e4f189cc2fec1c7d49b9d40ebc072c Mon Sep 17 00:00:00 2001 From: "Jonathan \"Geenz\" Goodman" Date: Sun, 23 Feb 2025 12:54:50 -0500 Subject: Quick fix for null pointer in LLDrawPoolWater --- indra/newview/app_settings/shaders/class3/environment/waterF.glsl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra/newview/app_settings/shaders/class3') diff --git a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl index 41c0d95b0e..157b59953d 100644 --- a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl +++ b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl @@ -315,9 +315,9 @@ void main() vec3 diffPunc = vec3(0); vec3 specPunc = vec3(0); - pbrPunctual(diffuseColor, specularColor, perceptualRoughness * perceptualRoughness, metallic, normalize(wavef+up*max(dist, 32.0)/32.0*(1.0-vdu)), v, normalize(light_dir), nl, diffPunc, specPunc); + pbrPunctual(diffuseColor, specularColor, perceptualRoughness, metallic, normalize(wavef+up*max(dist, 32.0)/32.0*(1.0-vdu)), v, normalize(light_dir), nl, diffPunc, specPunc); - vec3 punctual = clamp(nl * (diffPunc + specPunc), vec3(0), vec3(10)) * sunlit_linear * shadow; + vec3 punctual = clamp(nl * (diffPunc + specPunc), vec3(0), vec3(10)) * sunlit_linear * shadow * atten; radiance *= df2.y; //radiance = toneMapNoExposure(radiance); vec3 color = vec3(0); -- cgit v1.2.3 From 3dde346975526d7830886a112b654bd12adfd662 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Geenz\" Goodman" Date: Mon, 24 Feb 2025 17:19:41 -0500 Subject: Backout minimal+ change. --- indra/newview/app_settings/shaders/class3/environment/waterF.glsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/app_settings/shaders/class3') diff --git a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl index 157b59953d..2121088405 100644 --- a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl +++ b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl @@ -25,7 +25,7 @@ // class3/environment/waterF.glsl -#define WATER_MINIMAL_PLUS 1 +#define WATER_MINIMAL 1 out vec4 frag_color; -- cgit v1.2.3 From 51f2504cfea834dbb8fb0c543e40182abab0ac7f Mon Sep 17 00:00:00 2001 From: "Jonathan \"Geenz\" Goodman" Date: Wed, 5 Mar 2025 19:23:24 -0500 Subject: AMD NaN and inf propagation mitigation - #3663 (#3664) #3663 On AMD, the world may be rendered in really strange colors. --- indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'indra/newview/app_settings/shaders/class3') diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl index aac75a0739..948387a6ed 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl @@ -104,6 +104,7 @@ vec3 pbrBaseLight(vec3 diffuseColor, vec3 atten); GBufferInfo getGBuffer(vec2 screenpos); +vec3 clampHDRRange(vec3 color); void adjustIrradiance(inout vec3 irradiance, float ambocc) { @@ -278,6 +279,7 @@ void main() float final_scale = 1; if (classic_mode > 0) final_scale = 1.1; - frag_color.rgb = max(color.rgb * final_scale, vec3(0)); //output linear since local lights will be added to this shader's results + + frag_color.rgb = clampHDRRange(color.rgb * final_scale); //output linear since local lights will be added to this shader's results frag_color.a = 0.0; } -- cgit v1.2.3 From 59495b81cc64305231c18d2538a9f4a8bddd5194 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Geenz\" Goodman" Date: Wed, 5 Mar 2025 19:42:30 -0500 Subject: Hide shoreline fade behind a shader variant. (#3665) #3650 Fixed transparent particles over water make the water look black under their transparent parts --- indra/newview/app_settings/shaders/class3/environment/waterF.glsl | 2 ++ 1 file changed, 2 insertions(+) (limited to 'indra/newview/app_settings/shaders/class3') diff --git a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl index 2121088405..24c086dabe 100644 --- a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl +++ b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl @@ -263,7 +263,9 @@ void main() vec3 refPos = getPositionWithNDC(vec3(distort*2.0-vec2(1.0), depth*2.0-1.0)); // Calculate some distance fade in the water to better assist with refraction blending and reducing the refraction texture's "disconnect". +#ifdef SHORELINE_FADE fade = max(0,min(1, (pos.z - refPos.z) / 10)) * water_mask; +#endif distort2 = mix(distort, distort2, min(1, fade * 10)); depth = texture(depthMap, distort2).r; -- cgit v1.2.3 From aa060ae56c62869bb1d0f590e9a6eb681aabcefc Mon Sep 17 00:00:00 2001 From: "Jonathan \"Geenz\" Goodman" Date: Wed, 5 Mar 2025 19:51:59 -0500 Subject: Quick fix for water exclusion. (#3666) * Fix for water exclusion when shoreline fade is disabled. --- indra/newview/app_settings/shaders/class3/environment/waterF.glsl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'indra/newview/app_settings/shaders/class3') diff --git a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl index 24c086dabe..1b7b0c1937 100644 --- a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl +++ b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl @@ -264,8 +264,11 @@ void main() // Calculate some distance fade in the water to better assist with refraction blending and reducing the refraction texture's "disconnect". #ifdef SHORELINE_FADE - fade = max(0,min(1, (pos.z - refPos.z) / 10)) * water_mask; + fade = max(0,min(1, (pos.z - refPos.z) / 10)) +#else + fade = 1 * water_mask; #endif + distort2 = mix(distort, distort2, min(1, fade * 10)); depth = texture(depthMap, distort2).r; -- cgit v1.2.3