diff options
| author | Erik Kundiman <erik@megapahit.org> | 2024-09-28 18:01:02 +0800 | 
|---|---|---|
| committer | Erik Kundiman <erik@megapahit.org> | 2024-10-18 18:38:25 +0800 | 
| commit | ad3cbb9f75c4ea7f0473225afc034c403b54fc82 (patch) | |
| tree | 4e4239e97a405d2820e26a4f2215ad8ccb88af7e /indra/llprimitive | |
| parent | 7fdb350e487acc35b26de6e243ff27f94185d3a5 (diff) | |
| parent | 64c055f9be03861661f8c211ae36ba0db489b12d (diff) | |
Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into 2024.09-ExtraFPS
Diffstat (limited to 'indra/llprimitive')
| -rw-r--r-- | indra/llprimitive/CMakeLists.txt | 3 | ||||
| -rw-r--r-- | indra/llprimitive/lldaeloader.cpp | 9 | ||||
| -rw-r--r-- | indra/llprimitive/llgltfloader.cpp | 1 | ||||
| -rw-r--r-- | indra/llprimitive/llmodel.cpp | 7 | ||||
| -rw-r--r-- | indra/llprimitive/llmodel.h | 5 | ||||
| -rw-r--r-- | indra/llprimitive/llmodelloader.cpp | 1 | 
6 files changed, 17 insertions, 9 deletions
| diff --git a/indra/llprimitive/CMakeLists.txt b/indra/llprimitive/CMakeLists.txt index 8d403dc6c8..2fc40721c8 100644 --- a/indra/llprimitive/CMakeLists.txt +++ b/indra/llprimitive/CMakeLists.txt @@ -8,7 +8,6 @@ include(LLCommon)  include(LLCoreHttp)  include(LLPhysicsExtensions)  include(LLPrimitive) -include(GLH)  include(GLM)  include(TinyGLTF) @@ -90,7 +89,7 @@ target_link_libraries(llprimitive          llrender          llphysicsextensions_impl          ll::colladadom -        ll::glh_linear +        ll::glm          )  if (USESYSTEMLIBS) diff --git a/indra/llprimitive/lldaeloader.cpp b/indra/llprimitive/lldaeloader.cpp index 34af3ffece..7fa4230237 100644 --- a/indra/llprimitive/lldaeloader.cpp +++ b/indra/llprimitive/lldaeloader.cpp @@ -51,7 +51,8 @@  #include "llsdserialize.h"  #include "lljoint.h" -#include "glh/glh_linear.h" +#include "glm/mat4x4.hpp" +#include "glm/gtc/type_ptr.hpp"  #include "llmatrix4a.h"  #include <boost/regex.hpp> @@ -1216,9 +1217,9 @@ void LLDAELoader::processDomModel(LLModel* model, DAE* dae, daeElement* root, do          mesh_scale *= normalized_transformation;          normalized_transformation = mesh_scale; -        glh::matrix4f inv_mat((F32*) normalized_transformation.mMatrix); -        inv_mat = inv_mat.inverse(); -        LLMatrix4 inverse_normalized_transformation(inv_mat.m); +        glm::mat4 inv_mat = glm::make_mat4((F32*)normalized_transformation.mMatrix); +        inv_mat = glm::inverse(inv_mat); +        LLMatrix4 inverse_normalized_transformation(glm::value_ptr(inv_mat));          domSkin::domBind_shape_matrix* bind_mat = skin->getBind_shape_matrix(); diff --git a/indra/llprimitive/llgltfloader.cpp b/indra/llprimitive/llgltfloader.cpp index 776f81cc01..480012699a 100644 --- a/indra/llprimitive/llgltfloader.cpp +++ b/indra/llprimitive/llgltfloader.cpp @@ -51,7 +51,6 @@  #include "llsdserialize.h"  #include "lljoint.h" -#include "glh/glh_linear.h"  #include "llmatrix4a.h"  #include <boost/regex.hpp> diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp index bcd1ee57db..d60d6cdaac 100644 --- a/indra/llprimitive/llmodel.cpp +++ b/indra/llprimitive/llmodel.cpp @@ -1543,6 +1543,13 @@ void LLMeshSkinInfo::fromLLSD(LLSD& skin)          mLockScaleIfJointPosition = false;      } +    // combine mBindShapeMatrix and mInvBindMatrix into mBindPoseMatrix +    mBindPoseMatrix.resize(mInvBindMatrix.size()); +    for (U32 i = 0; i < mInvBindMatrix.size(); ++i) +    { +        matMul(mBindShapeMatrix, mInvBindMatrix[i], mBindPoseMatrix[i]); +    } +      updateHash();  } diff --git a/indra/llprimitive/llmodel.h b/indra/llprimitive/llmodel.h index b9c6c9aa24..af5bbf2da8 100644 --- a/indra/llprimitive/llmodel.h +++ b/indra/llprimitive/llmodel.h @@ -58,12 +58,15 @@ public:      LLUUID mMeshID;      std::vector<std::string> mJointNames;      mutable std::vector<S32> mJointNums; -    typedef std::vector<LLMatrix4a, boost::alignment::aligned_allocator<LLMatrix4a, 16>> matrix_list_t; +    typedef std::vector<LLMatrix4a> matrix_list_t;      matrix_list_t mInvBindMatrix;      // bones/joints position overrides      matrix_list_t mAlternateBindMatrix; +    // cached multiply of mBindShapeMatrix and mInvBindMatrix +    matrix_list_t mBindPoseMatrix; +      LL_ALIGN_16(LLMatrix4a mBindShapeMatrix);      float mPelvisOffset; diff --git a/indra/llprimitive/llmodelloader.cpp b/indra/llprimitive/llmodelloader.cpp index 1a64e6227f..84adec4da5 100644 --- a/indra/llprimitive/llmodelloader.cpp +++ b/indra/llprimitive/llmodelloader.cpp @@ -31,7 +31,6 @@  #include "lljoint.h"  #include "llcallbacklist.h" -#include "glh/glh_linear.h"  #include "llmatrix4a.h"  #include <boost/bind.hpp> | 
