diff --git a/WickedEngine/wiLoader.cpp b/WickedEngine/wiLoader.cpp index a7df33127..d870ba19b 100644 --- a/WickedEngine/wiLoader.cpp +++ b/WickedEngine/wiLoader.cpp @@ -3150,7 +3150,7 @@ void Armature::UpdateTransform() // calculate frame for (Bone* root : rootbones) { - RecursiveBoneTransform(this, root, XMMatrixIdentity()); + RecursiveBoneTransform(this, root, getMatrix()); } } diff --git a/WickedEngine/wiRenderer.cpp b/WickedEngine/wiRenderer.cpp index 4803383d3..ed8c3afd9 100644 --- a/WickedEngine/wiRenderer.cpp +++ b/WickedEngine/wiRenderer.cpp @@ -3756,7 +3756,7 @@ void wiRenderer::RenderMeshes(const XMFLOAT3& eye, const CulledCollection& culle if (!occlusionCulling || !instance->IsOccluded()) { XMMATRIX temp; - if (mesh->softBody) + if (mesh->softBody || instance->isArmatureDeformed()) temp = XMMatrixIdentity(); else temp = XMMatrixTranspose(XMLoadFloat4x4(&instance->world)); @@ -3764,7 +3764,7 @@ void wiRenderer::RenderMeshes(const XMFLOAT3& eye, const CulledCollection& culle if (shaderType == SHADERTYPE_FORWARD || shaderType == SHADERTYPE_TILEDFORWARD || shaderType == SHADERTYPE_DEFERRED) { - if (mesh->softBody) + if (mesh->softBody || instance->isArmatureDeformed()) temp = XMMatrixIdentity(); else temp = XMMatrixTranspose(XMLoadFloat4x4(&instance->worldPrev));