diff options
author | Rye <rye@lindenlab.com> | 2025-02-05 11:26:40 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-05 11:26:40 -0500 |
commit | c0156eb1c77a81d7cc180e6f61683d46b67d0f2d (patch) | |
tree | f69fad850635af9ba1825e3ff19d90d923c82a86 | |
parent | 265ebfb82f09f1c2c24578d4817ba389059e6da0 (diff) | |
parent | 81a2813bf50c7a75acaa48c7398ce926784300c6 (diff) |
Merge pull request #3497 from secondlife/rye/forever-3445
Fix media failing to function on PBR materials (#3445)
-rw-r--r-- | indra/newview/llviewertexture.cpp | 13 | ||||
-rw-r--r-- | indra/newview/llvovolume.cpp | 7 |
2 files changed, 7 insertions, 13 deletions
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 1084fb91da..609ad38e96 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -3548,18 +3548,7 @@ void LLViewerMediaTexture::setPlaying(bool playing) for(std::list< LLFace* >::iterator iter = mMediaFaceList.begin(); iter!= mMediaFaceList.end(); ++iter) { LLFace* facep = *iter; - const LLTextureEntry* te = facep->getTextureEntry(); - if (te && te->getGLTFMaterial()) - { - // PBR material, switch emissive and basecolor - switchTexture(LLRender::EMISSIVE_MAP, *iter); - switchTexture(LLRender::BASECOLOR_MAP, *iter); - } - else - { - // blinn-phong material, switch diffuse map only - switchTexture(LLRender::DIFFUSE_MAP, *iter); - } + switchTexture(LLRender::DIFFUSE_MAP, facep); } } else //stop playing this media diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index c1079ba12b..4dba930ed5 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); |