SL-10896
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
parent
fff2aecf7f
commit
fe589170d3
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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]);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue