FIRE-35013 - Local Rigged Mesh crash

Rigged mesh did not have support for the latest optimisation in skinning info caching.

Thsi fixes the primay route there may be other edge cases where they fail to trigger that I've not yet found.
master
Beq 2024-12-29 14:08:32 +00:00
parent 0072e74f7d
commit 115b620f3c
1 changed files with 8 additions and 0 deletions

View File

@ -1033,6 +1033,14 @@ bool LLLocalMeshImportDAE::processSkin(daeDatabase* collada_db, daeElement* coll
weights.emplace_back(new_wght);
}
}
// combine mBindShapeMatrix and mInvBindMatrix into mBindPoseMatrix
skininfop->mBindPoseMatrix.resize(skininfop->mInvBindMatrix.size());
for (U32 i = 0; i < skininfop->mInvBindMatrix.size(); ++i)
{
matMul(skininfop->mBindShapeMatrix, skininfop->mInvBindMatrix[i], skininfop->mBindPoseMatrix[i]);
}
skininfop->updateHash();
LL_DEBUGS("LocalMesh") << "hash: " << skininfop->mHash << LL_ENDL;
current_object->setObjectMeshSkinInfo(skininfop);