Fix issue where alpha_mode_none and alpha_mode_emissive on rigged faces were being alpha tested and discarded.

This commit is contained in:
Shyotl
2019-04-09 16:01:14 -05:00
parent 8ed9934a87
commit 3e0b75c4f7
2 changed files with 8 additions and 1 deletions

View File

@@ -982,6 +982,5 @@ void LLGLSLShader::vertexAttrib4f(U32 index, GLfloat x, GLfloat y, GLfloat z, GL
void LLGLSLShader::setMinimumAlpha(F32 minimum)
{
gGL.flush();
uniform1f(LLShaderMgr::MINIMUM_ALPHA, minimum);
}

View File

@@ -1666,6 +1666,10 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
{
sVertexProgram->setMinimumAlpha(mat->getAlphaMaskCutoff()/255.f);
}
else if (mat->getDiffuseAlphaMode() == LLMaterial::DIFFUSE_ALPHA_MODE_NONE || mat->getDiffuseAlphaMode() == LLMaterial::DIFFUSE_ALPHA_MODE_EMISSIVE)
{
sVertexProgram->setMinimumAlpha(0.f);
}
else
{
sVertexProgram->setMinimumAlpha(0.004f);
@@ -1690,6 +1694,10 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
{
sVertexProgram->setMinimumAlpha(mat->getAlphaMaskCutoff()/255.f);
}
else if (mat && (mat->getDiffuseAlphaMode() == LLMaterial::DIFFUSE_ALPHA_MODE_NONE || mat->getDiffuseAlphaMode() == LLMaterial::DIFFUSE_ALPHA_MODE_EMISSIVE))
{
sVertexProgram->setMinimumAlpha(0.f);
}
else
{
sVertexProgram->setMinimumAlpha(0.004f);