summaryrefslogtreecommitdiff
path: root/indra/newview/llvovolume.cpp
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2025-02-18 17:50:06 +0800
committerErik Kundiman <erik@megapahit.org>2025-02-18 17:50:06 +0800
commit4bf9c1314565bbca8ca62db994e201de7c5a97b7 (patch)
tree9e118846d4abb1fa6edccbcc615beac8b7f8972a /indra/newview/llvovolume.cpp
parent54afd71f42d8bc15217dd14d3924661bd9aaa044 (diff)
parent0679cbdec89fbd3ec470768bdf469f6a1d326859 (diff)
Merge commit '0679cbdec89fbd3ec470768bdf469f6a1d326859' into tmp
Diffstat (limited to 'indra/newview/llvovolume.cpp')
-rw-r--r--indra/newview/llvovolume.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 6e946f238b..3fb7a3c156 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -5750,7 +5750,12 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
if (is_pbr)
{
// tell texture streaming system to ignore blinn-phong textures
- facep->setTexture(LLRender::DIFFUSE_MAP, nullptr);
+ // except the special case of the diffuse map containing a
+ // media texture that will be reused for swapping on to the pbr face
+ if (!facep->hasMedia())
+ {
+ facep->setTexture(LLRender::DIFFUSE_MAP, nullptr);
+ }
facep->setTexture(LLRender::NORMAL_MAP, nullptr);
facep->setTexture(LLRender::SPECULAR_MAP, nullptr);
@@ -6726,8 +6731,11 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace
{ //shiny
if (tex->getPrimaryFormat() == GL_ALPHA)
{ //invisiprim+shiny
- registerFace(group, facep, LLRenderPass::PASS_INVISI_SHINY);
- registerFace(group, facep, LLRenderPass::PASS_INVISIBLE);
+ if (!facep->getViewerObject()->isAttachment() && !facep->getViewerObject()->isRiggedMesh())
+ {
+ registerFace(group, facep, LLRenderPass::PASS_INVISI_SHINY);
+ registerFace(group, facep, LLRenderPass::PASS_INVISIBLE);
+ }
}
else if (!hud_group)
{ //deferred rendering
@@ -6763,7 +6771,10 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace
{ //not alpha and not shiny
if (!is_alpha && tex->getPrimaryFormat() == GL_ALPHA)
{ //invisiprim
- registerFace(group, facep, LLRenderPass::PASS_INVISIBLE);
+ if (!facep->getViewerObject()->isAttachment() && !facep->getViewerObject()->isRiggedMesh())
+ {
+ registerFace(group, facep, LLRenderPass::PASS_INVISIBLE);
+ }
}
else if (fullbright || bake_sunlight)
{ //fullbright