summaryrefslogtreecommitdiff
path: root/indra/llprimitive/llmodel.cpp
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2022-09-15 17:23:34 -0500
committerDave Parks <davep@lindenlab.com>2022-09-15 17:23:34 -0500
commit82ab5f9765ad76c73d1d7ddd5716b22d6b92bf62 (patch)
tree80008bf0bfa44df1d962c5d030c0a7be787ce2fb /indra/llprimitive/llmodel.cpp
parente61b6570b15e5d7843712ea65e11c3df42bf4f81 (diff)
SL-18156 WIP -- Add NormalizedScale/NormalizedTranslation to mesh assets to recover mesh's original coordinate frame when generating tangents post download.
Diffstat (limited to 'indra/llprimitive/llmodel.cpp')
-rw-r--r--indra/llprimitive/llmodel.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp
index 1ce287d773..ab507edc40 100644
--- a/indra/llprimitive/llmodel.cpp
+++ b/indra/llprimitive/llmodel.cpp
@@ -337,6 +337,12 @@ void LLModel::normalizeVolumeFaces()
mNormalizedScale.set(normalized_scale.getF32ptr());
mNormalizedTranslation.set(trans.getF32ptr());
mNormalizedTranslation *= -1.f;
+
+ for (auto& face : mVolumeFaces)
+ {
+ face.mNormalizedScale = mNormalizedScale;
+ face.mNormalizedTranslation = mNormalizedTranslation;
+ }
}
}
@@ -749,7 +755,7 @@ LLSD LLModel::writeModel(
U32 vert_idx = 0;
U32 norm_idx = 0;
- U32 tan_idx = 0;
+ //U32 tan_idx = 0;
U32 tc_idx = 0;
LLVector2* ftc = (LLVector2*) face.mTexCoords;
@@ -803,6 +809,7 @@ LLSD LLModel::writeModel(
}
}
+#if 0
if (face.mMikktSpaceTangents)
{ //normals
F32* tangent = face.mMikktSpaceTangents[j].getF32ptr();
@@ -818,6 +825,7 @@ LLSD LLModel::writeModel(
tangents[tan_idx++] = buff[1];
}
}
+#endif
//texcoord
if (face.mTexCoords)
@@ -848,6 +856,9 @@ LLSD LLModel::writeModel(
//write out face data
mdl[model_names[idx]][i]["PositionDomain"]["Min"] = min_pos.getValue();
mdl[model_names[idx]][i]["PositionDomain"]["Max"] = max_pos.getValue();
+ mdl[model_names[idx]][i]["NormalizedScale"] = face.mNormalizedScale.getValue();
+ mdl[model_names[idx]][i]["NormalizedTranslation"] = face.mNormalizedTranslation.getValue();
+
mdl[model_names[idx]][i]["Position"] = verts;
if (face.mNormals)