diff options
author | Graham Linden <graham@lindenlab.com> | 2019-07-03 10:04:05 -0700 |
---|---|---|
committer | Graham Linden <graham@lindenlab.com> | 2019-07-03 10:04:05 -0700 |
commit | 48f169423ba0c1da8ffe13fc8bc4cec76336d8fc (patch) | |
tree | b98913a1c97fa68a5e7d892839c01b1db34c4e15 /indra/newview/app_settings/shaders/class1/deferred | |
parent | 7e5000bb64ca8eea3fe188ebb7bccff3bdfa82e7 (diff) |
SL-11545, SL-11543, SL-10625
Fix emissives without normal maps clobbering the alpha output in materialF.
Modify glow size calc to get close to pre-EEP sun glow behavior (may require sky vert settings >= mid).
Make bake ignore alpha readback for Intel until we can determine why their drivers now go boom.
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred')
-rw-r--r-- | indra/newview/app_settings/shaders/class1/deferred/materialF.glsl | 14 | ||||
-rw-r--r-- | indra/newview/app_settings/shaders/class1/deferred/skyV.glsl | 2 |
2 files changed, 7 insertions, 9 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl index a82af996a1..a8cac3e5a9 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl @@ -273,15 +273,11 @@ void main() vec2 abnormal = encode_normal(norm.xyz); vec4 final_color = diffuse_linear; - -#if (DIFFUSE_ALPHA_MODE != DIFFUSE_ALPHA_MODE_EMISSIVE) - final_color.a = emissive_brightness; -#else - final_color.a = max(final_color.a, emissive_brightness); -#endif -#if !defined(HAS_NORMAL_MAP) - final_color.a = 0.0f; +#if (DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_EMISSIVE) + // nop, use content of alpha emissive mask as is... +#else + final_color.a = emissive_brightness; #endif vec4 final_specular = spec; @@ -459,6 +455,8 @@ vec3 post_atmo = color.rgb; #else // deferred path + +final_color = diffuse_linear; frag_data[0] = final_color; frag_data[1] = final_specular; // XYZ = Specular color. W = Specular exponent. frag_data[2] = final_normal; // XY = Normal. Z = Env. intensity. diff --git a/indra/newview/app_settings/shaders/class1/deferred/skyV.glsl b/indra/newview/app_settings/shaders/class1/deferred/skyV.glsl index 5ce246a114..c3b046552c 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/skyV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/skyV.glsl @@ -121,7 +121,7 @@ void main() // temp2.x is 0 at the sun and increases away from sun temp2.x = max(temp2.x, .001); // Set a minimum "angle" (smaller glow.y allows tighter, brighter hotspot) - temp2.x *= glow.x; + temp2.x *= glow.x * 0.33333; // Higher glow.x gives dimmer glow (because next step is 1 / "angle") temp2.x = pow(temp2.x, glow.z); // glow.z should be negative, so we're doing a sort of (1 / "angle") function |