Skip to content
Snippets Groups Projects
Commit 2179e1c1 authored by David Parks's avatar David Parks
Browse files

SH-2541 Fix for speckles on avatar on some cards -- don't use "maximum_alpha"...

SH-2541 Fix for speckles on avatar on some cards -- don't use "maximum_alpha" for alpha tests in shaders as it was always being set to 1.0 anyway.
parent 55f69de9
No related branches found
No related tags found
No related merge requests found
Showing
with 24 additions and 37 deletions
...@@ -1009,9 +1009,8 @@ void LLGLSLShader::vertexAttrib4fv(U32 index, GLfloat* v) ...@@ -1009,9 +1009,8 @@ void LLGLSLShader::vertexAttrib4fv(U32 index, GLfloat* v)
} }
} }
void LLGLSLShader::setAlphaRange(F32 minimum, F32 maximum) void LLGLSLShader::setMinimumAlpha(F32 minimum)
{ {
gGL.flush(); gGL.flush();
uniform1f("minimum_alpha", minimum); uniform1f(LLShaderMgr::MINIMUM_ALPHA, minimum);
uniform1f("maximum_alpha", maximum);
} }
...@@ -108,7 +108,7 @@ class LLGLSLShader ...@@ -108,7 +108,7 @@ class LLGLSLShader
void uniformMatrix3fv(const std::string& uniform, U32 count, GLboolean transpose, const GLfloat *v); void uniformMatrix3fv(const std::string& uniform, U32 count, GLboolean transpose, const GLfloat *v);
void uniformMatrix4fv(const std::string& uniform, U32 count, GLboolean transpose, const GLfloat *v); void uniformMatrix4fv(const std::string& uniform, U32 count, GLboolean transpose, const GLfloat *v);
void setAlphaRange(F32 minimum, F32 maximum); void setMinimumAlpha(F32 minimum);
void vertexAttrib4f(U32 index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void vertexAttrib4f(U32 index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
void vertexAttrib4fv(U32 index, GLfloat* v); void vertexAttrib4fv(U32 index, GLfloat* v);
......
...@@ -1009,6 +1009,9 @@ void LLShaderMgr::initAttribsAndUniforms() ...@@ -1009,6 +1009,9 @@ void LLShaderMgr::initAttribsAndUniforms()
llassert(mReservedUniforms.size() == LLShaderMgr::GLOW_DELTA+1); llassert(mReservedUniforms.size() == LLShaderMgr::GLOW_DELTA+1);
mReservedUniforms.push_back("minimum_alpha");
mReservedUniforms.push_back("shadow_matrix"); mReservedUniforms.push_back("shadow_matrix");
mReservedUniforms.push_back("env_mat"); mReservedUniforms.push_back("env_mat");
mReservedUniforms.push_back("shadow_clip"); mReservedUniforms.push_back("shadow_clip");
......
...@@ -107,6 +107,8 @@ class LLShaderMgr ...@@ -107,6 +107,8 @@ class LLShaderMgr
GLOW_STRENGTH, GLOW_STRENGTH,
GLOW_DELTA, GLOW_DELTA,
MINIMUM_ALPHA,
DEFERRED_SHADOW_MATRIX, DEFERRED_SHADOW_MATRIX,
DEFERRED_ENV_MAT, DEFERRED_ENV_MAT,
DEFERRED_SHADOW_CLIP, DEFERRED_SHADOW_CLIP,
......
...@@ -28,7 +28,6 @@ out vec4 gl_FragData[3]; ...@@ -28,7 +28,6 @@ out vec4 gl_FragData[3];
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
uniform sampler2D diffuseMap; uniform sampler2D diffuseMap;
...@@ -40,7 +39,7 @@ void main() ...@@ -40,7 +39,7 @@ void main()
{ {
vec4 col = texture2D(diffuseMap, vary_texcoord0.xy) * vertex_color; vec4 col = texture2D(diffuseMap, vary_texcoord0.xy) * vertex_color;
if (col.a < minimum_alpha || col.a > maximum_alpha) if (col.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -30,7 +30,6 @@ out vec4 gl_FragData[3]; ...@@ -30,7 +30,6 @@ out vec4 gl_FragData[3];
VARYING vec3 vary_normal; VARYING vec3 vary_normal;
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
VARYING vec4 vertex_color; VARYING vec4 vertex_color;
VARYING vec2 vary_texcoord0; VARYING vec2 vary_texcoord0;
...@@ -39,7 +38,7 @@ void main() ...@@ -39,7 +38,7 @@ void main()
{ {
vec4 col = diffuseLookup(vary_texcoord0.xy) * vertex_color; vec4 col = diffuseLookup(vary_texcoord0.xy) * vertex_color;
if (col.a < minimum_alpha || col.a > maximum_alpha) if (col.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -29,7 +29,6 @@ out vec4 gl_FragData[3]; ...@@ -29,7 +29,6 @@ out vec4 gl_FragData[3];
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
uniform sampler2D diffuseMap; uniform sampler2D diffuseMap;
...@@ -40,7 +39,7 @@ void main() ...@@ -40,7 +39,7 @@ void main()
{ {
vec4 col = texture2D(diffuseMap, vary_texcoord0.xy); vec4 col = texture2D(diffuseMap, vary_texcoord0.xy);
if (col.a < minimum_alpha || col.a > maximum_alpha) if (col.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -28,7 +28,6 @@ out vec4 gl_FragData[3]; ...@@ -28,7 +28,6 @@ out vec4 gl_FragData[3];
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
uniform sampler2D diffuseMap; uniform sampler2D diffuseMap;
...@@ -41,7 +40,7 @@ void main() ...@@ -41,7 +40,7 @@ void main()
{ {
vec4 col = texture2D(diffuseMap, vary_texcoord0.xy); vec4 col = texture2D(diffuseMap, vary_texcoord0.xy);
if (col.a < minimum_alpha || col.a > maximum_alpha) if (col.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -28,7 +28,6 @@ out vec4 gl_FragColor; ...@@ -28,7 +28,6 @@ out vec4 gl_FragColor;
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
uniform sampler2D diffuseMap; uniform sampler2D diffuseMap;
...@@ -40,7 +39,7 @@ void main() ...@@ -40,7 +39,7 @@ void main()
{ {
float alpha = texture2D(diffuseMap, vary_texcoord0.xy).a * vertex_color.a; float alpha = texture2D(diffuseMap, vary_texcoord0.xy).a * vertex_color.a;
if (alpha < minimum_alpha || alpha > maximum_alpha) if (alpha < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -34,12 +34,11 @@ VARYING vec3 vary_normal; ...@@ -34,12 +34,11 @@ VARYING vec3 vary_normal;
VARYING vec2 vary_texcoord0; VARYING vec2 vary_texcoord0;
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
void main() void main()
{ {
vec4 col = texture2D(diffuseMap, vary_texcoord0.xy); vec4 col = texture2D(diffuseMap, vary_texcoord0.xy);
if (col.a < minimum_alpha || col.a > maximum_alpha) if (col.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -28,7 +28,6 @@ out vec4 gl_FragColor; ...@@ -28,7 +28,6 @@ out vec4 gl_FragColor;
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
uniform sampler2D diffuseMap; uniform sampler2D diffuseMap;
...@@ -39,7 +38,7 @@ void main() ...@@ -39,7 +38,7 @@ void main()
{ {
float alpha = texture2D(diffuseMap, vary_texcoord0.xy).a; float alpha = texture2D(diffuseMap, vary_texcoord0.xy).a;
if (alpha < minimum_alpha || alpha > maximum_alpha) if (alpha < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -30,7 +30,6 @@ out vec4 gl_FragColor; ...@@ -30,7 +30,6 @@ out vec4 gl_FragColor;
uniform sampler2D diffuseMap; uniform sampler2D diffuseMap;
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
VARYING vec2 vary_texcoord0; VARYING vec2 vary_texcoord0;
VARYING vec4 vertex_color; VARYING vec4 vertex_color;
...@@ -38,7 +37,7 @@ VARYING vec4 vertex_color; ...@@ -38,7 +37,7 @@ VARYING vec4 vertex_color;
void main() void main()
{ {
vec4 col = vertex_color*texture2D(diffuseMap, vary_texcoord0.xy); vec4 col = vertex_color*texture2D(diffuseMap, vary_texcoord0.xy);
if (col.a < minimum_alpha || col.a > maximum_alpha) if (col.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -28,7 +28,6 @@ out vec4 gl_FragColor; ...@@ -28,7 +28,6 @@ out vec4 gl_FragColor;
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
vec3 atmosLighting(vec3 light); vec3 atmosLighting(vec3 light);
vec3 scaleSoftClip(vec3 light); vec3 scaleSoftClip(vec3 light);
...@@ -40,7 +39,7 @@ void default_lighting() ...@@ -40,7 +39,7 @@ void default_lighting()
{ {
vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color; vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color;
if (color.a < minimum_alpha || color.a > maximum_alpha) if (color.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -28,8 +28,6 @@ out vec4 gl_FragColor; ...@@ -28,8 +28,6 @@ out vec4 gl_FragColor;
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
uniform sampler2D diffuseMap; uniform sampler2D diffuseMap;
...@@ -43,7 +41,7 @@ void default_lighting() ...@@ -43,7 +41,7 @@ void default_lighting()
{ {
vec4 color = texture2D(diffuseMap,vary_texcoord0.xy) * vertex_color; vec4 color = texture2D(diffuseMap,vary_texcoord0.xy) * vertex_color;
if (color.a < minimum_alpha || color.a > maximum_alpha) if (color.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -28,7 +28,6 @@ out vec4 gl_FragColor; ...@@ -28,7 +28,6 @@ out vec4 gl_FragColor;
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
vec3 fullbrightAtmosTransport(vec3 light); vec3 fullbrightAtmosTransport(vec3 light);
vec3 fullbrightScaleSoftClip(vec3 light); vec3 fullbrightScaleSoftClip(vec3 light);
...@@ -40,7 +39,7 @@ void fullbright_lighting() ...@@ -40,7 +39,7 @@ void fullbright_lighting()
{ {
vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color; vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color;
if (color.a < minimum_alpha || color.a > maximum_alpha) if (color.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -28,7 +28,6 @@ out vec4 gl_FragColor; ...@@ -28,7 +28,6 @@ out vec4 gl_FragColor;
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
vec3 fullbrightAtmosTransport(vec3 light); vec3 fullbrightAtmosTransport(vec3 light);
vec3 fullbrightScaleSoftClip(vec3 light); vec3 fullbrightScaleSoftClip(vec3 light);
...@@ -42,7 +41,7 @@ void fullbright_lighting() ...@@ -42,7 +41,7 @@ void fullbright_lighting()
{ {
vec4 color = texture2D(diffuseMap,vary_texcoord0.xy) * vertex_color; vec4 color = texture2D(diffuseMap,vary_texcoord0.xy) * vertex_color;
if (color.a < minimum_alpha || color.a > maximum_alpha) if (color.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -28,7 +28,6 @@ out vec4 gl_FragColor; ...@@ -28,7 +28,6 @@ out vec4 gl_FragColor;
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
vec4 diffuseLookup(vec2 texcoord); vec4 diffuseLookup(vec2 texcoord);
...@@ -42,7 +41,7 @@ void fullbright_lighting_water() ...@@ -42,7 +41,7 @@ void fullbright_lighting_water()
{ {
vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color; vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color;
if (color.a < minimum_alpha || color.a > maximum_alpha) if (color.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -28,7 +28,6 @@ out vec4 gl_FragColor; ...@@ -28,7 +28,6 @@ out vec4 gl_FragColor;
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
uniform sampler2D diffuseMap; uniform sampler2D diffuseMap;
...@@ -42,7 +41,7 @@ void fullbright_lighting_water() ...@@ -42,7 +41,7 @@ void fullbright_lighting_water()
{ {
vec4 color = texture2D(diffuseMap, vary_texcoord0.xy) * vertex_color; vec4 color = texture2D(diffuseMap, vary_texcoord0.xy) * vertex_color;
if (color.a < minimum_alpha || color.a > maximum_alpha) if (color.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -28,7 +28,6 @@ out vec4 gl_FragColor; ...@@ -28,7 +28,6 @@ out vec4 gl_FragColor;
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
vec3 atmosLighting(vec3 light); vec3 atmosLighting(vec3 light);
vec4 applyWaterFog(vec4 color); vec4 applyWaterFog(vec4 color);
...@@ -40,7 +39,7 @@ void default_lighting_water() ...@@ -40,7 +39,7 @@ void default_lighting_water()
{ {
vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color; vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color;
if (color.a < minimum_alpha || color.a > maximum_alpha) if (color.a < minimum_alpha)
{ {
discard; discard;
} }
......
...@@ -28,7 +28,6 @@ out vec4 gl_FragColor; ...@@ -28,7 +28,6 @@ out vec4 gl_FragColor;
#endif #endif
uniform float minimum_alpha; uniform float minimum_alpha;
uniform float maximum_alpha;
uniform sampler2D diffuseMap; uniform sampler2D diffuseMap;
...@@ -42,7 +41,7 @@ void default_lighting_water() ...@@ -42,7 +41,7 @@ void default_lighting_water()
{ {
vec4 color = texture2D(diffuseMap,vary_texcoord0.xy) * vertex_color; vec4 color = texture2D(diffuseMap,vary_texcoord0.xy) * vertex_color;
if (color.a < minimum_alpha || color.a > maximum_alpha) if (color.a < minimum_alpha)
{ {
discard; discard;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment