From 1a437cbedf94de90d749f426dde09f2466693de2 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Tue, 4 Oct 2022 20:33:10 +0300 Subject: SL-18144 Bakes On Mesh not showing in-world as Albedo --- indra/newview/llmaterialeditor.cpp | 1 + indra/newview/llviewerobject.cpp | 22 +++++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/indra/newview/llmaterialeditor.cpp b/indra/newview/llmaterialeditor.cpp index a72d38223f..a2cd68259b 100644 --- a/indra/newview/llmaterialeditor.cpp +++ b/indra/newview/llmaterialeditor.cpp @@ -1903,6 +1903,7 @@ void LLMaterialEditor::onLoadComplete(const LLUUID& asset_uuid, editor->setEnableEditing(allow_modify && !source_library); editor->setHasUnsavedChanges(false); editor->mAssetStatus = PREVIEW_ASSET_LOADED; + editor->setEnabled(true); // ready for use } else { diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index b4fad16dba..a256b770b1 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -4930,13 +4930,21 @@ void LLViewerObject::updateTEMaterialTextures(U8 te) mTESpecularMaps[te] = LLViewerTextureManager::getFetchedTexture(spec_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_ALM, LLViewerTexture::LOD_TEXTURE); } - auto fetch_texture = [](const LLUUID& id) + auto fetch_texture = [](const LLUUID& id, LLViewerObject *obj) { LLViewerFetchedTexture* img = nullptr; if (id.notNull()) { - img = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_ALM, LLViewerTexture::LOD_TEXTURE); - img->addTextureStats(64.f * 64.f, TRUE); + if (LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::isBakedImageId(id)) + { + LLViewerTexture* viewerTexture = obj->getBakedTextureForMagicId(id); + img = viewerTexture ? dynamic_cast(viewerTexture) : nullptr; + } + else + { + img = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_ALM, LLViewerTexture::LOD_TEXTURE); + img->addTextureStats(64.f * 64.f, TRUE); + } } return img; @@ -4957,10 +4965,10 @@ void LLViewerObject::updateTEMaterialTextures(U8 te) if (mat != nullptr) { - mGLTFBaseColorMaps[te] = fetch_texture(mat->mBaseColorId); - mGLTFNormalMaps[te] = fetch_texture(mat->mNormalId); - mGLTFMetallicRoughnessMaps[te] = fetch_texture(mat->mMetallicRoughnessId); - mGLTFEmissiveMaps[te] = fetch_texture(mat->mEmissiveId); + mGLTFBaseColorMaps[te] = fetch_texture(mat->mBaseColorId, this); + mGLTFNormalMaps[te] = fetch_texture(mat->mNormalId, this); + mGLTFMetallicRoughnessMaps[te] = fetch_texture(mat->mMetallicRoughnessId, this); + mGLTFEmissiveMaps[te] = fetch_texture(mat->mEmissiveId, this); } else { -- cgit v1.2.3