diff options
| author | Nat Goodspeed <nat@lindenlab.com> | 2024-06-10 17:24:19 -0400 | 
|---|---|---|
| committer | Nat Goodspeed <nat@lindenlab.com> | 2024-06-10 17:24:19 -0400 | 
| commit | 730d94779c0e798ec91b269b530a08f0eebaa13d (patch) | |
| tree | d4821d194caef6e71f3e31b578fde635a38bdb3b /indra/newview/app_settings/shaders/class1/windlight | |
| parent | d317454c82e016a02c8a708a0118f3ff29aa8e82 (diff) | |
| parent | 9f97ff7286aceef5be4e7589ca4af911edf30f12 (diff) | |
Merge release/materials_featurette to main on promotion of secondlife/viewer #648: Release/materials featurette
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/windlight')
| -rw-r--r-- | indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl | 14 | 
1 files changed, 7 insertions, 7 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl index b7cd3f0589..d077670c96 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl @@ -57,16 +57,16 @@ void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, ou      vec3  rel_pos_norm = normalize(rel_pos);      float rel_pos_len  = length(rel_pos); - +          vec3  sunlight     = (sun_up_factor == 1) ? sunlight_color: moonlight_color; - +          // sunlight attenuation effect (hue and brightness) due to atmosphere      // this is used later for sunlight modulation at various altitudes      vec3 light_atten = (blue_density + vec3(haze_density * 0.25)) * (density_multiplier * max_y);      // I had thought blue_density and haze_density should have equal weighting,      // but attenuation due to haze_density tends to seem too strong -    vec3 combined_haze = blue_density + vec3(haze_density); +    vec3 combined_haze = max(blue_density + vec3(haze_density), vec3(1e-6));      vec3 blue_weight   = blue_density / combined_haze;      vec3 haze_weight   = vec3(haze_density) / combined_haze; @@ -98,7 +98,7 @@ void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, ou      haze_glow = max(haze_glow, .001);  // set a minimum "angle" (smaller glow.y allows tighter, brighter hotspot)      haze_glow *= glow.x;      // higher glow.x gives dimmer glow (because next step is 1 / "angle") -    haze_glow = pow(haze_glow, glow.z); +    haze_glow = clamp(pow(haze_glow, glow.z), -100000, 100000);      // glow.z should be negative, so we're doing a sort of (1 / "angle") function      // add "minimum anti-solar illumination" @@ -119,7 +119,7 @@ void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, ou      additive = (blue_horizon.rgb * blue_weight.rgb) * (cs + tmpAmbient.rgb) + (haze_horizon * haze_weight.rgb) * (cs * haze_glow + tmpAmbient.rgb);      // brightness of surface both sunlight and ambient - +          sunlit = sunlight.rgb;      amblit = tmpAmbient; @@ -128,7 +128,7 @@ void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, ou  vec3 srgb_to_linear(vec3 col); -// provide a touch of lighting in the opposite direction of the sun light +// provide a touch of lighting in the opposite direction of the sun light       // so areas in shadow don't lose all detail  float ambientLighting(vec3 norm, vec3 light_dir)  { @@ -150,7 +150,7 @@ void calcAtmosphericVarsLinear(vec3 inPositionEye, vec3 norm, vec3 light_dir, ou      // (allows for mixing of light sources other than sunlight e.g. reflection probes)      sunlit *= sky_sunlight_scale;      amblit *= sky_ambient_scale; - +          amblit = srgb_to_linear(amblit);      amblit *= ambientLighting(norm, light_dir);  } | 
