summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRunitaiLinden <davep@lindenlab.com>2023-11-13 13:12:48 -0600
committerGitHub <noreply@github.com>2023-11-13 13:12:48 -0600
commit843866d193a0fb5ea882408c8862335ab9c5539b (patch)
tree62375c861df79d64bd8a6e5c884075d5d0f59388
parentafa45530f745af8c9d595948ac957b12664cca2c (diff)
Drtvwr 596 11/8/2023 (#501)
* SL-20570 Fix for lossy (and square) normal maps when importing GLTF materials. * SL-20582 Fix for overriding to alpha mode blend not working. Incidental decruft of dead code (thanks, Rye!)
-rw-r--r--indra/llprimitive/llgltfmaterial.cpp1
-rw-r--r--indra/llprimitive/llprimitive.cpp36
-rw-r--r--indra/llprimitive/llprimitive.h5
-rw-r--r--indra/newview/llmaterialeditor.cpp14
4 files changed, 5 insertions, 51 deletions
diff --git a/indra/llprimitive/llgltfmaterial.cpp b/indra/llprimitive/llgltfmaterial.cpp
index d2c911a189..ae165f7fa4 100644
--- a/indra/llprimitive/llgltfmaterial.cpp
+++ b/indra/llprimitive/llgltfmaterial.cpp
@@ -723,6 +723,7 @@ void LLGLTFMaterial::applyOverrideLLSD(const LLSD& data)
if (am.isInteger())
{
mAlphaMode = (AlphaMode) am.asInteger();
+ mOverrideAlphaMode = true;
}
const LLSD& ac = data["ac"];
diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp
index 350d84ae6c..904747af2d 100644
--- a/indra/llprimitive/llprimitive.cpp
+++ b/indra/llprimitive/llprimitive.cpp
@@ -2376,42 +2376,6 @@ void LLRenderMaterialParams::copy(const LLNetworkData& data)
mEntries = param.mEntries;
}
-LLSD LLRenderMaterialParams::asLLSD() const
-{
- LLSD ret;
-
- for (int i = 0; i < mEntries.size(); ++i)
- {
- ret[i]["te_idx"] = mEntries[i].te_idx;
- ret[i]["id"] = mEntries[i].id;
- }
-
- return ret;
-}
-
-bool LLRenderMaterialParams::fromLLSD(LLSD& sd)
-{
- if (sd.isArray())
- {
- mEntries.resize(sd.size());
- for (int i = 0; i < sd.size(); ++i)
- {
- if (sd[i].has("te_idx") && sd.has("id"))
- {
- mEntries[i].te_idx = sd[i]["te_idx"].asInteger();
- mEntries[i].id = sd[i]["id"].asUUID();
- }
- else
- {
- return false;
- }
- }
-
- return true;
- }
-
- return false;
-}
void LLRenderMaterialParams::setMaterial(U8 te, const LLUUID& id)
{
diff --git a/indra/llprimitive/llprimitive.h b/indra/llprimitive/llprimitive.h
index d2adfa4a3d..0b7dbd703a 100644
--- a/indra/llprimitive/llprimitive.h
+++ b/indra/llprimitive/llprimitive.h
@@ -382,10 +382,7 @@ public:
BOOL unpack(LLDataPacker& dp) override;
bool operator==(const LLNetworkData& data) const override;
void copy(const LLNetworkData& data) override;
- LLSD asLLSD() const;
- operator LLSD() const { return asLLSD(); }
- bool fromLLSD(LLSD& sd);
-
+
void setMaterial(U8 te_idx, const LLUUID& id);
const LLUUID& getMaterial(U8 te_idx) const;
diff --git a/indra/newview/llmaterialeditor.cpp b/indra/newview/llmaterialeditor.cpp
index 11a528314e..a5437f7a88 100644
--- a/indra/newview/llmaterialeditor.cpp
+++ b/indra/newview/llmaterialeditor.cpp
@@ -1840,17 +1840,9 @@ static void pack_textures(
if (normal_img)
{
- normal_j2c = LLViewerTextureList::convertToUploadFile(normal_img);
-
- LLPointer<LLImageJ2C> test;
- test = LLViewerTextureList::convertToUploadFile(normal_img, 1024, true);
-
- S32 lossy_bytes = normal_j2c->getDataSize();
- S32 lossless_bytes = test->getDataSize();
-
- LL_DEBUGS("MaterialEditor") << llformat("Lossless vs Lossy: (%d/%d) = %.2f", lossless_bytes, lossy_bytes, (F32)lossless_bytes / lossy_bytes) << LL_ENDL;
-
- normal_j2c = test;
+ // create a losslessly compressed version of the normal map
+ normal_j2c = LLViewerTextureList::convertToUploadFile(normal_img, 1024, false, true);
+ LL_DEBUGS("MaterialEditor") << "Normal: " << normal_j2c->getDataSize() << LL_ENDL;
}
if (mr_img)