diff --git a/Assets/Shaders/Anim_VS.glsl b/Assets/Shaders/Anim_VS.glsl index d12cb34b..c9aa64aa 100644 --- a/Assets/Shaders/Anim_VS.glsl +++ b/Assets/Shaders/Anim_VS.glsl @@ -71,5 +71,5 @@ void main() boneMatrix += BoneMatrices.data[aBoneIndices[3]] * aBoneWeights[3]; // clip space for rendering - gl_Position = cameraData.vpMat * worldTransform * vec4 (aVertexPos, 1.0f); + gl_Position = cameraData.vpMat * worldTransform * boneMatrix * vec4 (aVertexPos, 1.0f); } \ No newline at end of file diff --git a/Assets/Shaders/Anim_VS.shshaderb b/Assets/Shaders/Anim_VS.shshaderb index 1560e232..c10bdc5a 100644 Binary files a/Assets/Shaders/Anim_VS.shshaderb and b/Assets/Shaders/Anim_VS.shshaderb differ diff --git a/SHADE_Engine/src/Animation/SHAnimatorComponent.cpp b/SHADE_Engine/src/Animation/SHAnimatorComponent.cpp index 50ce1975..5eff2c45 100644 --- a/SHADE_Engine/src/Animation/SHAnimatorComponent.cpp +++ b/SHADE_Engine/src/Animation/SHAnimatorComponent.cpp @@ -86,7 +86,7 @@ namespace SHADE currClip = newClip; secsPerTick = 1.0f / currClip->GetTicksPerSecond(); - if (!rig) + if (rig) { updatePoseWithClip(0.0f); } diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHMeshLibrary.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHMeshLibrary.cpp index df21343e..b0ca7f14 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHMeshLibrary.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHMeshLibrary.cpp @@ -185,7 +185,9 @@ namespace SHADE } else { + const auto OG_SIZE = vertBoneWeightStorage.size(); vertBoneWeightStorage.resize(vertBoneWeightStorage.size() + addJob.VertexCount); + std::fill_n(vertBoneWeightStorage.begin() + OG_SIZE, addJob.VertexCount, SHVec4(1.0f, 0.0f, 0.0f, 0.0f)); } indexStorage.insert ( diff --git a/SHADE_Engine/src/Resource/SHResourceManager.hpp b/SHADE_Engine/src/Resource/SHResourceManager.hpp index 5aff2529..ea6b4ad9 100644 --- a/SHADE_Engine/src/Resource/SHResourceManager.hpp +++ b/SHADE_Engine/src/Resource/SHResourceManager.hpp @@ -211,7 +211,9 @@ namespace SHADE assetData.VertexTangents.data(), assetData.VertexNormals.data(), assetData.Indices.size(), - assetData.Indices.data() + assetData.Indices.data(), + assetData.VertexBoneIndices.empty() ? nullptr : assetData.VertexBoneIndices.data(), + assetData.VertexBoneWeights.empty() ? nullptr : assetData.VertexBoneWeights.data() ); } // Textures