SL-17703: PBR: Fix missing ORM to use 1,0,0

meow-7.2.2
Ptolemy 2022-08-29 14:06:48 -07:00
parent d6e8a6c98a
commit 71ae65ae17
3 changed files with 12 additions and 2 deletions

View File

@ -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)

View File

@ -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;

View File

@ -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
};