summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1/environment
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@lindenlab.com>2025-01-30 01:59:45 -0500
committerGitHub <noreply@github.com>2025-01-30 01:59:45 -0500
commit460e77c47eb8167b1dc2c45bbd8ae4ff6937bcdb (patch)
treebbf182201184709870c94d5e61d95cf62edefeef /indra/newview/app_settings/shaders/class1/environment
parentfd577e3bfc49181ab71f4c13c04c51d8a073dccb (diff)
#3456 Water improvements to get us closer to 6.6.17 (#3490)
* A lot of tweaking for water. * Get water much closer to 6.6.17. This won't produce 1:1 results, but it should be much closer to where we once were.
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/environment')
-rw-r--r--indra/newview/app_settings/shaders/class1/environment/srgbF.glsl20
-rw-r--r--indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl4
2 files changed, 22 insertions, 2 deletions
diff --git a/indra/newview/app_settings/shaders/class1/environment/srgbF.glsl b/indra/newview/app_settings/shaders/class1/environment/srgbF.glsl
index d7f6d20547..bf8737615f 100644
--- a/indra/newview/app_settings/shaders/class1/environment/srgbF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/srgbF.glsl
@@ -41,6 +41,26 @@ vec3 srgb_to_linear(vec3 cs)
}
+
+vec4 srgb_to_linear4(vec4 cs)
+{
+ vec4 low_range = cs / vec4(12.92);
+ vec4 high_range = pow((cs+vec4(0.055))/vec4(1.055), vec4(2.4));
+ bvec4 lte = lessThanEqual(cs,vec4(0.04045));
+
+#ifdef OLD_SELECT
+ vec4 result;
+ result.r = lte.r ? low_range.r : high_range.r;
+ result.g = lte.g ? low_range.g : high_range.g;
+ result.b = lte.b ? low_range.b : high_range.b;
+ result.a = lte.a ? low_range.a : high_range.a;
+ return result;
+#else
+ return mix(high_range, low_range, lte);
+#endif
+
+}
+
vec3 linear_to_srgb(vec3 cl)
{
cl = clamp(cl, vec3(0), vec3(1));
diff --git a/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl b/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl
index 20b61e9302..44a979e565 100644
--- a/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl
@@ -66,11 +66,11 @@ vec4 getWaterFogViewNoClip(vec3 pos)
float t2 = kd + ks * es;
float t3 = pow(F, t2*l) - 1.0;
- float L = min(t1/t2*t3, 1.0);
+ float L = pow(min(t1/t2*t3, 1.0), 1.0/1.7);
float D = pow(0.98, l*kd);
- return vec4(srgb_to_linear(kc.rgb*L), D);
+ return vec4(srgb_to_linear(kc.rgb)*L, D);
}
vec4 getWaterFogView(vec3 pos)