summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorPtolemy <ptolemy@lindenlab.com>2022-08-29 14:06:48 -0700
committerPtolemy <ptolemy@lindenlab.com>2022-08-29 14:06:48 -0700
commit71ae65ae175a33c7f60442f62b0ef59415528bf5 (patch)
treec5e83f75903530a332a3d928c5b55976836ae71b /indra
parentd6e8a6c98aa426e8f1ee92cd7bc65703cf0a22aa (diff)
SL-17703: PBR: Fix missing ORM to use 1,0,0
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/lldrawpoolpbropaque.cpp2
-rw-r--r--indra/newview/llviewertexture.cpp11
-rw-r--r--indra/newview/llviewertexture.h1
3 files changed, 12 insertions, 2 deletions
diff --git a/indra/newview/lldrawpoolpbropaque.cpp b/indra/newview/lldrawpoolpbropaque.cpp
index 3930e11cf3..35beafaa40 100644
--- a/indra/newview/lldrawpoolpbropaque.cpp
+++ b/indra/newview/lldrawpoolpbropaque.cpp
@@ -120,7 +120,7 @@ void LLDrawPoolPBROpaque::renderDeferred(S32 pass)
}
else
{
- shader->bindTexture(LLShaderMgr::SPECULAR_MAP, LLViewerFetchedTexture::sWhiteImagep);
+ shader->bindTexture(LLShaderMgr::SPECULAR_MAP, LLViewerTexture::sDefaultPBRORMImagep); // ORM 1,0,0
}
if (pparams->mEmissiveMap)
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index c389d2122e..3ecab2c647 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -69,6 +69,7 @@ const S32Megabytes gMaxVideoRam(512);
LLPointer<LLViewerTexture> LLViewerTexture::sNullImagep = NULL;
LLPointer<LLViewerTexture> LLViewerTexture::sBlackImagep = NULL;
LLPointer<LLViewerTexture> LLViewerTexture::sCheckerBoardImagep = NULL;
+LLPointer<LLViewerTexture> LLViewerTexture::sDefaultPBRORMImagep = NULL; // PBR: When ORM is missing use 1,0,0
LLPointer<LLViewerFetchedTexture> LLViewerFetchedTexture::sMissingAssetImagep = NULL;
LLPointer<LLViewerFetchedTexture> LLViewerFetchedTexture::sWhiteImagep = NULL;
LLPointer<LLViewerFetchedTexture> LLViewerFetchedTexture::sDefaultImagep = NULL;
@@ -367,6 +368,13 @@ void LLViewerTextureManager::init()
LLViewerTexture::sNullImagep = LLViewerTextureManager::getLocalTexture(raw.get(), TRUE);
}
+ // Create Default PBR ORM Texture 1,0,0
+ {
+ LLPointer<LLImageRaw> red = new LLImageRaw(8,8,3);
+ red->clear(0xFF, 0x00, 0x00, 0xFF);
+ LLViewerTexture::sDefaultPBRORMImagep = LLViewerTextureManager::getLocalTexture(red.get(), TRUE);
+ }
+
const S32 dim = 128;
LLPointer<LLImageRaw> image_raw = new LLImageRaw(dim,dim,3);
U8* data = image_raw->getData();
@@ -451,8 +459,9 @@ void LLViewerTextureManager::cleanup()
LLImageGL::sDefaultGLTexture = NULL;
LLViewerTexture::sNullImagep = NULL;
LLViewerTexture::sBlackImagep = NULL;
+ LLViewerFetchedTexture::sDefaultPBRORMImagep = NULL;
LLViewerTexture::sCheckerBoardImagep = NULL;
- LLViewerFetchedTexture::sDefaultImagep = NULL;
+ LLViewerFetchedTexture::sDefaultImagep = NULL;
LLViewerFetchedTexture::sSmokeImagep = NULL;
LLViewerFetchedTexture::sMissingAssetImagep = NULL;
LLTexUnit::sWhiteTexture = 0;
diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h
index 53cf911102..89ded4ded7 100644
--- a/indra/newview/llviewertexture.h
+++ b/indra/newview/llviewertexture.h
@@ -252,6 +252,7 @@ public:
static LLPointer<LLViewerTexture> sNullImagep; // Null texture for non-textured objects.
static LLPointer<LLViewerTexture> sBlackImagep; // Texture to show NOTHING (pure black)
static LLPointer<LLViewerTexture> sCheckerBoardImagep; // Texture to show NOTHING (pure black)
+ static LLPointer<LLViewerTexture> sDefaultPBRORMImagep; // PBR: When ORM is missing use 1,0,0
};