diff --git a/assets b/assets
index c2847a65..6ae43521 160000
--- a/assets
+++ b/assets
@@ -1 +1 @@
-Subproject commit c2847a658ef603cf5c0ee993c4133bdf9c879d1c
+Subproject commit 6ae43521b000345bd52bf92c06c5353d14b726ae
diff --git a/resources/Schema/Entities/AnimationTests2.xml b/resources/Schema/Entities/AnimationTests2.xml
index adb38d8d..3c482c61 100644
--- a/resources/Schema/Entities/AnimationTests2.xml
+++ b/resources/Schema/Entities/AnimationTests2.xml
@@ -45,7 +45,7 @@
Aim
- Models/AssaultAnims.mesh
+ Models/Characters/Assault/HelloCube.mesh
true
diff --git a/src/Engine/Rendering/DrawFinalPass.cpp b/src/Engine/Rendering/DrawFinalPass.cpp
index 46a47e7e..abc00b89 100644
--- a/src/Engine/Rendering/DrawFinalPass.cpp
+++ b/src/Engine/Rendering/DrawFinalPass.cpp
@@ -210,6 +210,7 @@ void DrawFinalPass::DrawModelRenderQueues(std::list>&
} else {
frameBones = explosionEffectJob->Skeleton->GetFrameBones(explosionEffectJob->Animations);
}
+ glUniformMatrix4fv(glGetUniformLocation(explosionSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
}
else {
m_ExplosionEffectProgram->Bind();
@@ -237,6 +238,8 @@ void DrawFinalPass::DrawModelRenderQueues(std::list>&
} else {
frameBones = explosionEffectJob->Skeleton->GetFrameBones(explosionEffectJob->Animations);
}
+ glUniformMatrix4fv(glGetUniformLocation(explosionSplatMapSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
+
}
else {
m_ExplosionEffectSplatMapProgram->Bind();
@@ -281,6 +284,8 @@ void DrawFinalPass::DrawModelRenderQueues(std::list>&
} else {
frameBones = modelJob->Skeleton->GetFrameBones(modelJob->Animations);
}
+ glUniformMatrix4fv(glGetUniformLocation(forwardSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
+
} else {
m_ForwardPlusProgram->Bind();
GLERROR("Bind ForwardPlusProgram");
@@ -307,6 +312,8 @@ void DrawFinalPass::DrawModelRenderQueues(std::list>&
} else {
frameBones = modelJob->Skeleton->GetFrameBones(modelJob->Animations);
}
+ glUniformMatrix4fv(glGetUniformLocation(forwardSplatMapSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
+
} else {
m_ForwardPlusSplatMapProgram->Bind();
GLERROR("Bind SplatMap program");
diff --git a/src/Engine/Rendering/PickingPass.cpp b/src/Engine/Rendering/PickingPass.cpp
index 9d911325..41850698 100644
--- a/src/Engine/Rendering/PickingPass.cpp
+++ b/src/Engine/Rendering/PickingPass.cpp
@@ -110,6 +110,8 @@ void PickingPass::Draw(RenderScene& scene)
} else {
frameBones = modelJob->Skeleton->GetFrameBones(modelJob->Animations);
}
+ glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
+
}
} else {
m_PickingProgram->Bind();
@@ -190,6 +192,8 @@ void PickingPass::Draw(RenderScene& scene)
} else {
frameBones = modelJob->Skeleton->GetFrameBones(modelJob->Animations);
}
+ glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
+
}
glBindVertexArray(modelJob->Model->VAO);
diff --git a/src/Engine/Rendering/RawModelCustom.cpp b/src/Engine/Rendering/RawModelCustom.cpp
index 7eb58fd4..4ebf80b6 100644
--- a/src/Engine/Rendering/RawModelCustom.cpp
+++ b/src/Engine/Rendering/RawModelCustom.cpp
@@ -288,12 +288,11 @@ void RawModelCustom::ReadAnimationFile(std::string filePath)
std::ifstream in(filePath.c_str(), std::ios_base::binary | std::ios_base::ate);
if (!in.is_open()) {
- //throw Resource::FailedLoadingException("Open animation file failed");
+ if (hasSkin) {
+ throw Resource::FailedLoadingException("Open animation file for a skinned mesh failed, unknown stuff will happen");
+ }
return;
- } else if (hasSkin) {
- throw Resource::FailedLoadingException("Open animation file for a skinned mesh failed, unknown stuff will happen");
- return;
- }
+ }
unsigned int fileByteSize = static_cast(in.tellg());
in.seekg(0, std::ios_base::beg);