Fix deferred water soften prog lightnorm getting stomped with rotated lightnorm,
because it's a water shader and needs water atmo uniform values,
but it's a deferred lighting shader that needs not-so-rotated lightnorms.

Make sunlight_color not get auto-updated so we can get the correct value from mSunDiffuse.

Remove mix to preserve bumps as it was washing out shadows.
meow-7.2.2
Graham Linden 2019-04-05 15:54:21 -07:00
parent fff2aecf7f
commit fe589170d3
6 changed files with 6 additions and 5 deletions

View File

@ -211,7 +211,7 @@ void main()
ambient = max(0.9, ambient); // keeps shadows dark
ambient = 1.0 - ambient;
vec3 sun_contrib = mix(final_da, min(final_da, shadow), 0.1) * sunlit;
vec3 sun_contrib = min(final_da, shadow) * sunlit;
color.rgb *= ambient;
color.rgb += sun_contrib;

View File

@ -308,7 +308,7 @@ void main()
ambient = max(0.9, ambient);
ambient = 1.0 - ambient;
vec3 sun_contrib = mix(final_da, min(final_da, shadow), 0.1) * sunlit;
vec3 sun_contrib = min(final_da, shadow) * sunlit;
col.rgb = amblit;
col.rgb *= ambient;

View File

@ -129,7 +129,7 @@ void main()
ambient = max(0.9, ambient);
ambient = 1.0 - ambient;
vec3 sun_contrib = mix(final_da, min(scol, final_da), 0.1) * sunlit;
vec3 sun_contrib = min(scol, final_da) * sunlit;
col.rgb = amblit;
col.rgb *= ambient;

View File

@ -152,7 +152,7 @@ void calcFragAtmospherics(vec3 inPositionEye, float ambFactor, out vec3 sunlit,
+ tmpAmbient));
//brightness of surface both sunlight and ambient
sunlit = srgb_to_linear(sunlight.rgb);
sunlit = vec3(sunlight.rgb* 0.5);
amblit = vec3(tmpAmbient * .25);
additive = normalize(additive);
additive *= vec3(1.0 - exp(-temp2.z * distance_multiplier)) * 0.5;

View File

@ -719,7 +719,7 @@ LLSettingsSky::parammapping_t LLSettingsVOSky::getParameterMap() const
param_map[SETTING_CLOUD_VARIANCE] = DefaultParam(LLShaderMgr::CLOUD_VARIANCE, sky_defaults[SETTING_CLOUD_VARIANCE]);
param_map[SETTING_GLOW] = DefaultParam(LLShaderMgr::GLOW, sky_defaults[SETTING_GLOW]);
param_map[SETTING_MAX_Y] = DefaultParam(LLShaderMgr::MAX_Y, sky_defaults[SETTING_MAX_Y]);
param_map[SETTING_SUNLIGHT_COLOR] = DefaultParam(LLShaderMgr::SUNLIGHT_COLOR, sky_defaults[SETTING_SUNLIGHT_COLOR]);
//param_map[SETTING_SUNLIGHT_COLOR] = DefaultParam(LLShaderMgr::SUNLIGHT_COLOR, sky_defaults[SETTING_SUNLIGHT_COLOR]);
param_map[SETTING_MOON_BRIGHTNESS] = DefaultParam(LLShaderMgr::MOON_BRIGHTNESS, sky_defaults[SETTING_MOON_BRIGHTNESS]);
param_map[SETTING_SKY_MOISTURE_LEVEL] = DefaultParam(LLShaderMgr::MOISTURE_LEVEL, sky_defaults[SETTING_SKY_MOISTURE_LEVEL]);
param_map[SETTING_SKY_DROPLET_RADIUS] = DefaultParam(LLShaderMgr::DROPLET_RADIUS, sky_defaults[SETTING_SKY_DROPLET_RADIUS]);

View File

@ -8612,6 +8612,7 @@ void LLPipeline::renderDeferredLighting(LLRenderTarget* screen_target)
LLEnvironment& environment = LLEnvironment::instance();
soften_shader.uniform1i(LLShaderMgr::SUN_UP_FACTOR, environment.getIsSunUp() ? 1 : 0);
soften_shader.uniform4fv(LLShaderMgr::LIGHTNORM, 1, environment.getClampedLightNorm().mV);
{
LLGLDepthTest depth(GL_FALSE);