diff options
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred')
| -rw-r--r-- | indra/newview/app_settings/shaders/class1/deferred/materialF.glsl | 13 | 
1 files changed, 6 insertions, 7 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl index 1280bc20a8..b30d7655db 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl @@ -202,7 +202,7 @@ VARYING vec2 vary_texcoord2;  uniform float env_intensity;  uniform vec4 specular_color;  // specular color RGB and specular exponent (glossiness) in alpha -#ifdef HAS_ALPHA_MASK +#if (DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_MASK)  uniform float minimum_alpha;  #endif @@ -227,12 +227,11 @@ void main()      vec4 diffcol = texture2D(diffuseMap, vary_texcoord0.xy);  	diffcol.rgb *= vertex_color.rgb; -#if HAS_ALPHA_MASK && (DIFFUSE_ALPHA_MODE != DIFFUSE_ALPHA_MODE_EMISSIVE) -#if DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_BLEND -    if (diffcol.a*vertex_color.a < minimum_alpha) -#else -    if (diffcol.a < minimum_alpha) -#endif +#if (DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_MASK) + +    // Comparing floats cast from 8-bit values, produces acne right at the 8-bit transition points +    float bias = 0.001953125; // 1/512, or half an 8-bit quantization (SL-18637) +    if (diffcol.a < minimum_alpha-bias)      {          discard;      } | 
