summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class2
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-05-07 15:36:43 -0700
committerGraham Linden <graham@lindenlab.com>2019-05-07 15:36:43 -0700
commita1e8042c1f2f1ab0ed5b6040535348974e659556 (patch)
tree6dc73e850b3f3be2d202ede8fee351302bd582ee /indra/newview/app_settings/shaders/class2
parent570bbdb779f5e4be0c1804862bdffc9c5a1beb1b (diff)
SL-11055, SL-10966, SL-11087
Make haze look more like WL. Make lack of sun and moon mean black and fixed dir to prevent spooky underlighting.
Diffstat (limited to 'indra/newview/app_settings/shaders/class2')
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/skyF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl6
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/skyV.glsl3
5 files changed, 16 insertions, 11 deletions
diff --git a/indra/newview/app_settings/shaders/class2/deferred/skyF.glsl b/indra/newview/app_settings/shaders/class2/deferred/skyF.glsl
index bd0ca0a46e..eb95890e08 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/skyF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/skyF.glsl
@@ -44,6 +44,7 @@ uniform float haze_density;
uniform float cloud_shadow;
uniform float density_multiplier;
+uniform float distance_multiplier;
uniform float max_y;
uniform vec4 glow;
@@ -117,7 +118,8 @@ void main()
vec4 sunlight = (sun_up_factor == 1) ? sunlight_color : moonlight_color;
vec4 light_atten;
- float dens_mul = density_multiplier * 0.45;
+ float dens_mul = density_multiplier;
+ float dist_mul = distance_multiplier;
// Sunlight attenuation effect (hue and brightness) due to atmosphere
// this is used later for sunlight modulation at various altitudes
@@ -139,8 +141,7 @@ void main()
// Transparency (-> temp1)
// ATI Bugfix -- can't store temp1*temp2.z in a variable because the ati
// compiler gets confused.
- temp1 = exp(-temp1 * temp2.z);
-
+ temp1 = exp(-temp1 * temp2.z * dist_mul);
// Compute haze glow
temp2.x = dot(Pn, lightnorm.xyz);
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
index 36703ea742..9db04f4e9a 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
@@ -37,6 +37,8 @@ uniform vec4 blue_density;
uniform float haze_horizon;
uniform float haze_density;
uniform float cloud_shadow;
+uniform float density_multiplier;
+uniform float distance_multiplier;
uniform float max_y;
uniform vec4 glow;
uniform float scene_light_strength;
@@ -53,7 +55,7 @@ vec3 atmosFragLighting(vec3 light, vec3 additive, vec3 atten)
return light;
}
light *= atten.r;
- light += additive * exp(-1.0f);
+ light += additive;
return light * 2.0;
}
diff --git a/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl b/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl
index 1de919bf30..396ceacd19 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl
@@ -86,14 +86,14 @@ void main()
vec2 disturbance2 = vec2(cloudNoise((uv1 + uv3) / 4.0f).x, cloudNoise((uv4 + uv2) / 8.0f).x) * cloud_variance * (1.0f - cloud_scale * 0.25f);
// Offset texture coords
- uv1 += cloud_pos_density1.xy;// + (disturbance * 0.02); //large texture, visible density
+ uv1 += cloud_pos_density1.xy + (disturbance * 0.02); //large texture, visible density
uv2 += cloud_pos_density1.xy; //large texture, self shadow
uv3 += cloud_pos_density2.xy; //small texture, visible density
uv4 += cloud_pos_density2.xy; //small texture, self shadow
float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0 + disturbance2.x + disturbance2.y));
- //cloudDensity *= 1.0 - (density_variance * density_variance);
+ cloudDensity *= 1.0 - (density_variance * density_variance);
// Compute alpha1, the main cloud opacity
@@ -104,7 +104,7 @@ void main()
alpha1 = 1. - alpha1 * alpha1;
alpha1 = 1. - alpha1 * alpha1;
- //alpha1 *= altitude_blend_factor;
+ alpha1 *= altitude_blend_factor;
//if (alpha1 < 0.001f)
//{
diff --git a/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl b/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
index 43500bc5e3..aaf995af3c 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
@@ -57,6 +57,7 @@ uniform float haze_density;
uniform float cloud_shadow;
uniform float density_multiplier;
+uniform float distance_multiplier;
uniform float max_y;
uniform vec4 glow;
@@ -103,7 +104,8 @@ void main()
vec4 sunlight = (sun_up_factor == 1) ? sunlight_color : moonlight_color;
vec4 light_atten;
- float dens_mul = density_multiplier * 0.45;
+ float dens_mul = density_multiplier;
+ float dist_mul = distance_multiplier;
// Sunlight attenuation effect (hue and brightness) due to atmosphere
// this is used later for sunlight modulation at various altitudes
@@ -125,8 +127,7 @@ void main()
// Transparency (-> temp1)
// ATI Bugfix -- can't store temp1*temp2.z in a variable because the ati
// compiler gets confused.
- temp1 = exp(-temp1 * temp2.z);
-
+ temp1 = exp(-temp1 * temp2.z * dist_mul);
// Compute haze glow
temp2.x = dot(Pn, lightnorm.xyz);
diff --git a/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl b/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl
index f6bef3e6bc..a23a5d4076 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl
@@ -49,6 +49,7 @@ uniform float haze_density;
uniform float cloud_shadow;
uniform float density_multiplier;
+uniform float distance_multiplier;
uniform float max_y;
uniform vec4 glow;
@@ -109,7 +110,7 @@ void main()
// Transparency (-> temp1)
// ATI Bugfix -- can't store temp1*temp2.z in a variable because the ati
// compiler gets confused.
- temp1 = exp(-temp1 * temp2.z);
+ temp1 = exp(-temp1 * temp2.z * distance_multiplier);
// Compute haze glow