diff options
author | Ptolemy <ptolemy@lindenlab.com> | 2022-08-29 14:06:48 -0700 |
---|---|---|
committer | Ptolemy <ptolemy@lindenlab.com> | 2022-08-29 14:06:48 -0700 |
commit | 71ae65ae175a33c7f60442f62b0ef59415528bf5 (patch) | |
tree | c5e83f75903530a332a3d928c5b55976836ae71b /indra/newview | |
parent | d6e8a6c98aa426e8f1ee92cd7bc65703cf0a22aa (diff) |
SL-17703: PBR: Fix missing ORM to use 1,0,0
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/lldrawpoolpbropaque.cpp | 2 | ||||
-rw-r--r-- | indra/newview/llviewertexture.cpp | 11 | ||||
-rw-r--r-- | indra/newview/llviewertexture.h | 1 |
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 }; |