|
|
|
@@ -362,11 +362,15 @@ void DrawFinalPass::DrawModelRenderQueues(std::list<std::shared_ptr<RenderJob>>&
|
|
|
|
|
glBindTexture(GL_TEXTURE_CUBE_MAP, m_CubeMapPass->m_CubeMapTexture);
|
|
|
|
|
glUniform3fv(glGetUniformLocation(explosionSkinnedHandle, "CameraPosition"), 1, glm::value_ptr(scene.Camera->Position()));
|
|
|
|
|
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (explosionEffectJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = explosionEffectJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = explosionEffectJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_ExplosionEffectProgram->Bind();
|
|
|
|
@@ -391,11 +395,14 @@ void DrawFinalPass::DrawModelRenderQueues(std::list<std::shared_ptr<RenderJob>>&
|
|
|
|
|
//bind textures
|
|
|
|
|
BindExplosionTextures(explosionSplatMapSkinnedHandle, explosionEffectJob);
|
|
|
|
|
GLERROR("asdasd");
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (explosionEffectJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = explosionEffectJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionSplatMapSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = explosionEffectJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionSplatMapSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_ExplosionEffectSplatMapProgram->Bind();
|
|
|
|
@@ -438,12 +445,14 @@ void DrawFinalPass::DrawModelRenderQueues(std::list<std::shared_ptr<RenderJob>>&
|
|
|
|
|
glBindTexture(GL_TEXTURE_CUBE_MAP, m_CubeMapPass->m_CubeMapTexture);
|
|
|
|
|
glUniform3fv(glGetUniformLocation(forwardSkinnedHandle, "CameraPosition"), 1, glm::value_ptr(scene.Camera->Position()));
|
|
|
|
|
|
|
|
|
|
if (modelJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (modelJob->BlendTree != nullptr) {
|
|
|
|
|
frameBones = modelJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = modelJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_ForwardPlusProgram->Bind();
|
|
|
|
|
GLERROR("Bind ForwardPlusProgram");
|
|
|
|
@@ -467,11 +476,14 @@ void DrawFinalPass::DrawModelRenderQueues(std::list<std::shared_ptr<RenderJob>>&
|
|
|
|
|
//bind textures
|
|
|
|
|
BindModelTextures(forwardSplatMapSkinnedHandle, modelJob);
|
|
|
|
|
GLERROR("asdasd");
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (modelJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = modelJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardSplatMapSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = modelJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardSplatMapSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_ForwardPlusSplatMapProgram->Bind();
|
|
|
|
@@ -547,11 +559,14 @@ void DrawFinalPass::DrawModelRenderQueuesWithShieldCheck(std::list<std::shared_p
|
|
|
|
|
glBindTexture(GL_TEXTURE_CUBE_MAP, m_CubeMapPass->m_CubeMapTexture);
|
|
|
|
|
glUniform3fv(glGetUniformLocation(explosionSkinnedShieldCheckHandle, "CameraPosition"), 1, glm::value_ptr(scene.Camera->Position()));
|
|
|
|
|
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (explosionEffectJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = explosionEffectJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionSkinnedShieldCheckHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = explosionEffectJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionSkinnedShieldCheckHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_ExplosionEffectShieldCheckProgram->Bind();
|
|
|
|
@@ -578,11 +593,14 @@ void DrawFinalPass::DrawModelRenderQueuesWithShieldCheck(std::list<std::shared_p
|
|
|
|
|
BindExplosionTextures(explosionSplatMapSkinnedShieldCheckHandle, explosionEffectJob);
|
|
|
|
|
GLERROR("asdasd");
|
|
|
|
|
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (explosionEffectJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = explosionEffectJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionSplatMapSkinnedShieldCheckHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = explosionEffectJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionSplatMapSkinnedShieldCheckHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_ExplosionEffectSplatMapShieldCheckProgram->Bind();
|
|
|
|
@@ -614,12 +632,14 @@ void DrawFinalPass::DrawModelRenderQueuesWithShieldCheck(std::list<std::shared_p
|
|
|
|
|
glBindTexture(GL_TEXTURE_CUBE_MAP, m_CubeMapPass->m_CubeMapTexture);
|
|
|
|
|
glUniform3fv(glGetUniformLocation(explosionSkinnedHandle, "CameraPosition"), 1, glm::value_ptr(scene.Camera->Position()));
|
|
|
|
|
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (explosionEffectJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = explosionEffectJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = explosionEffectJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_ExplosionEffectProgram->Bind();
|
|
|
|
|
GLERROR("Bind ExplosionEffect program");
|
|
|
|
@@ -643,12 +663,14 @@ void DrawFinalPass::DrawModelRenderQueuesWithShieldCheck(std::list<std::shared_p
|
|
|
|
|
//bind textures
|
|
|
|
|
BindExplosionTextures(explosionSplatMapSkinnedHandle, explosionEffectJob);
|
|
|
|
|
GLERROR("asdasd");
|
|
|
|
|
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (explosionEffectJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = explosionEffectJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionSplatMapSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = explosionEffectJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionSplatMapSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_ExplosionEffectSplatMapProgram->Bind();
|
|
|
|
@@ -693,11 +715,14 @@ void DrawFinalPass::DrawModelRenderQueuesWithShieldCheck(std::list<std::shared_p
|
|
|
|
|
glBindTexture(GL_TEXTURE_CUBE_MAP, m_CubeMapPass->m_CubeMapTexture);
|
|
|
|
|
glUniform3fv(glGetUniformLocation(forwardSkinnedShieldCheckHandle, "CameraPosition"), 1, glm::value_ptr(scene.Camera->Position()));
|
|
|
|
|
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (modelJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = modelJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardSkinnedShieldCheckHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = modelJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardSkinnedShieldCheckHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_ForwardPlusShieldCheckProgram->Bind();
|
|
|
|
@@ -723,11 +748,13 @@ void DrawFinalPass::DrawModelRenderQueuesWithShieldCheck(std::list<std::shared_p
|
|
|
|
|
BindModelTextures(forwardSplatMapSkinnedShieldCheckHandle, modelJob);
|
|
|
|
|
GLERROR("asdasd");
|
|
|
|
|
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (modelJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = modelJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardSplatMapSkinnedShieldCheckHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = modelJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardSplatMapSkinnedShieldCheckHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_ForwardPlusSplatMapShieldCheckProgram->Bind();
|
|
|
|
@@ -757,11 +784,14 @@ void DrawFinalPass::DrawModelRenderQueuesWithShieldCheck(std::list<std::shared_p
|
|
|
|
|
glBindTexture(GL_TEXTURE_CUBE_MAP, m_CubeMapPass->m_CubeMapTexture);
|
|
|
|
|
glUniform3fv(glGetUniformLocation(forwardSkinnedHandle, "CameraPosition"), 1, glm::value_ptr(scene.Camera->Position()));
|
|
|
|
|
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (modelJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = modelJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = modelJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_ForwardPlusProgram->Bind();
|
|
|
|
@@ -787,11 +817,13 @@ void DrawFinalPass::DrawModelRenderQueuesWithShieldCheck(std::list<std::shared_p
|
|
|
|
|
BindModelTextures(forwardSplatMapSkinnedHandle, modelJob);
|
|
|
|
|
GLERROR("asdasd");
|
|
|
|
|
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (modelJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = modelJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = modelJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_ForwardPlusSplatMapProgram->Bind();
|
|
|
|
@@ -849,11 +881,14 @@ void DrawFinalPass::DrawShieldedModelRenderQueue(std::list<std::shared_ptr<Rende
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (explosionEffectJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = explosionEffectJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = explosionEffectJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(explosionHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
|
|
|
|
|
if (GLERROR("Animation")) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
@@ -885,12 +920,16 @@ void DrawFinalPass::DrawShieldedModelRenderQueue(std::list<std::shared_ptr<Rende
|
|
|
|
|
//bind textures
|
|
|
|
|
BindModelTextures(forwardHandle ,modelJob);
|
|
|
|
|
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (modelJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = modelJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = modelJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(forwardHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//draw
|
|
|
|
|
glBindVertexArray(modelJob->Model->VAO);
|
|
|
|
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, modelJob->Model->ElementBuffer);
|
|
|
|
@@ -918,11 +957,14 @@ void DrawFinalPass::DrawToDepthStencilBuffer(std::list<std::shared_ptr<RenderJob
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "P"), 1, GL_FALSE, glm::value_ptr(scene.Camera->ProjectionMatrix()));
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "M"), 1, GL_FALSE, glm::value_ptr(modelJob->Matrix));
|
|
|
|
|
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
if (modelJob->BlendTree != nullptr) {
|
|
|
|
|
std::vector<glm::mat4> frameBones;
|
|
|
|
|
frameBones = modelJob->BlendTree->GetFinalPose();
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
} else {
|
|
|
|
|
frameBones = modelJob->Skeleton->GetTPose();
|
|
|
|
|
}
|
|
|
|
|
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
m_FillDepthStencilBufferProgram->Bind();
|
|
|
|
|
GLuint shaderHandle = m_FillDepthStencilBufferProgram->GetHandle();
|
|
|
|
|