SL-1835
Make attachmentAlphaMaskShadow frag shader ignore vert alpha which can be incorrect. Make discard test in attachmentAlphaMaskShadow match other shadow shaders more closely. Fix highlightF shader compile error.master
parent
32a147369e
commit
53abfe53bd
|
|
@ -41,7 +41,7 @@ VARYING vec4 vertex_color;
|
|||
|
||||
void main()
|
||||
{
|
||||
float alpha = texture2D(diffuseMap, vary_texcoord0.xy).a * vertex_color.a;
|
||||
float alpha = texture2D(diffuseMap, vary_texcoord0.xy).a;
|
||||
|
||||
if (alpha < 0.05) // treat as totally transparent
|
||||
{
|
||||
|
|
@ -50,7 +50,7 @@ void main()
|
|||
|
||||
if (alpha < minimum_alpha) // treat as semi-transparent
|
||||
{
|
||||
if (fract(0.5*floor(target_pos_x / pos_w )) < 0.25)
|
||||
//if (fract(0.5*floor(target_pos_x / pos_w )) < 0.25)
|
||||
{
|
||||
discard;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ VARYING vec2 vary_texcoord0;
|
|||
|
||||
void main()
|
||||
{
|
||||
frag_data[0] = color*texture2D(diffuseMap, vary_texcoord0.xy));
|
||||
frag_data[0] = color*texture2D(diffuseMap, vary_texcoord0.xy);
|
||||
frag_data[1] = vec4(0.0);
|
||||
frag_data[2] = vec4(0.0, 1.0, 0.0, 1.0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1807,6 +1807,9 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
|
|||
S32 offset = face->getIndicesStart();
|
||||
U32 count = face->getIndicesCount();
|
||||
|
||||
U16 start = face->getGeomStart();
|
||||
U16 end = start + face->getGeomCount()-1;
|
||||
|
||||
LLDrawable* drawable = face->getDrawable();
|
||||
if (!drawable)
|
||||
{
|
||||
|
|
@ -1862,15 +1865,10 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
|
|||
LLViewerTexture* tex = face->getTexture(LLRender::DIFFUSE_MAP);
|
||||
if (tex)
|
||||
{
|
||||
LLGLenum image_format = tex->getPrimaryFormat();
|
||||
if (tex->getIsAlphaMask())
|
||||
{
|
||||
is_alpha_mask = true;
|
||||
}
|
||||
else if (!is_alpha_mask && (image_format == GL_RGBA || image_format == GL_ALPHA))
|
||||
{
|
||||
is_alpha_blend = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (mat)
|
||||
|
|
@ -1894,6 +1892,7 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
|
|||
case LLMaterial::DIFFUSE_ALPHA_MODE_NONE:
|
||||
default:
|
||||
is_alpha_blend = false;
|
||||
is_alpha_mask = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1906,6 +1905,15 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
|
|||
}
|
||||
}
|
||||
|
||||
if (tex)
|
||||
{
|
||||
LLGLenum image_format = tex->getPrimaryFormat();
|
||||
if (!is_alpha_mask && (image_format == GL_RGBA || image_format == GL_ALPHA))
|
||||
{
|
||||
is_alpha_blend = true;
|
||||
}
|
||||
}
|
||||
|
||||
// if this is alpha mask content and we're doing opaques or a non-alpha-mask shadow pass...
|
||||
if (is_alpha_mask && (LLDrawPoolAvatar::sSkipTransparent || LLDrawPoolAvatar::sShadowPass != SHADOW_PASS_ATTACHMENT_ALPHA_MASK))
|
||||
{
|
||||
|
|
@ -1972,9 +1980,6 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
|
|||
data_mask &= ~LLVertexBuffer::MAP_WEIGHT4;
|
||||
}
|
||||
|
||||
U16 start = face->getGeomStart();
|
||||
U16 end = start + face->getGeomCount()-1;
|
||||
|
||||
/*if (glow)
|
||||
{
|
||||
gGL.diffuseColor4f(0,0,0,face->getTextureEntry()->getGlow());
|
||||
|
|
|
|||
Loading…
Reference in New Issue