Removed temp variables & the "forced" animation in DrawFinalPass
This commit is contained in:
@@ -4,6 +4,7 @@ uniform mat4 M;
|
|||||||
uniform mat4 V;
|
uniform mat4 V;
|
||||||
uniform mat4 P;
|
uniform mat4 P;
|
||||||
uniform vec4 Color;
|
uniform vec4 Color;
|
||||||
|
uniform vec4 DiffuseColor;
|
||||||
uniform vec2 ScreenDimensions;
|
uniform vec2 ScreenDimensions;
|
||||||
layout (binding = 0) uniform sampler2D DiffuseTexture;
|
layout (binding = 0) uniform sampler2D DiffuseTexture;
|
||||||
layout (binding = 1) uniform sampler2D GlowMap;
|
layout (binding = 1) uniform sampler2D GlowMap;
|
||||||
@@ -46,7 +47,6 @@ in VertexData{
|
|||||||
vec3 Position;
|
vec3 Position;
|
||||||
vec3 Normal;
|
vec3 Normal;
|
||||||
vec2 TextureCoordinate;
|
vec2 TextureCoordinate;
|
||||||
vec4 DiffuseColor;
|
|
||||||
}Input;
|
}Input;
|
||||||
|
|
||||||
out vec4 sceneColor;
|
out vec4 sceneColor;
|
||||||
@@ -135,7 +135,7 @@ void main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//sceneColor += Input.DiffuseColor;
|
//sceneColor += Input.DiffuseColor;
|
||||||
vec4 color_result = Input.DiffuseColor * (totalLighting.Diffuse + totalLighting.Specular) * diffuseTexel * Color;
|
vec4 color_result = DiffuseColor * (totalLighting.Diffuse + totalLighting.Specular) * diffuseTexel * Color;
|
||||||
//bloomColor = vec4(0.3, 0.8, 0.6, 1.0);
|
//bloomColor = vec4(0.3, 0.8, 0.6, 1.0);
|
||||||
sceneColor = vec4(color_result.xyz, clamp(color_result.a, 0, 1));
|
sceneColor = vec4(color_result.xyz, clamp(color_result.a, 0, 1));
|
||||||
//These if statements should be removed if they are slow.
|
//These if statements should be removed if they are slow.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ DrawColorCorrectionPass::DrawColorCorrectionPass(IRenderer* renderer)
|
|||||||
m_Renderer = renderer;
|
m_Renderer = renderer;
|
||||||
|
|
||||||
m_ScreenQuad = ResourceManager::Load<Model>("Models/Core/ScreenQuad.obj");
|
m_ScreenQuad = ResourceManager::Load<Model>("Models/Core/ScreenQuad.obj");
|
||||||
m_Exposure = 1; //TODO: Renderer: Fixa så att denna går att ändra på genom komponent eller setting.
|
m_Exposure = 0.4; //TODO: Renderer: Fixa så att denna går att ändra på genom komponent eller setting.
|
||||||
|
|
||||||
InitializeShaderPrograms();
|
InitializeShaderPrograms();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ void DrawFinalPass::InitializeShaderPrograms()
|
|||||||
m_ForwardPlusProgram->BindFragDataLocation(1, "bloomColor");
|
m_ForwardPlusProgram->BindFragDataLocation(1, "bloomColor");
|
||||||
m_ForwardPlusProgram->Link();
|
m_ForwardPlusProgram->Link();
|
||||||
}
|
}
|
||||||
static double tempTime = 0.0;
|
|
||||||
void DrawFinalPass::Draw(RenderScene& scene)
|
void DrawFinalPass::Draw(RenderScene& scene)
|
||||||
{
|
{
|
||||||
GLERROR("DrawFinalPass::Draw: Pre");
|
GLERROR("DrawFinalPass::Draw: Pre");
|
||||||
@@ -65,6 +65,7 @@ void DrawFinalPass::Draw(RenderScene& scene)
|
|||||||
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "P"), 1, GL_FALSE, glm::value_ptr(scene.Camera->ProjectionMatrix()));
|
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "P"), 1, GL_FALSE, glm::value_ptr(scene.Camera->ProjectionMatrix()));
|
||||||
glUniform2f(glGetUniformLocation(shaderHandle, "ScreenDimensions"), m_Renderer->Resolution().Width, m_Renderer->Resolution().Height);
|
glUniform2f(glGetUniformLocation(shaderHandle, "ScreenDimensions"), m_Renderer->Resolution().Width, m_Renderer->Resolution().Height);
|
||||||
|
|
||||||
|
|
||||||
//TODO: Render: Add code for more jobs than modeljobs.
|
//TODO: Render: Add code for more jobs than modeljobs.
|
||||||
for (auto &job : scene.ForwardJobs) {
|
for (auto &job : scene.ForwardJobs) {
|
||||||
auto modelJob = std::dynamic_pointer_cast<ModelJob>(job);
|
auto modelJob = std::dynamic_pointer_cast<ModelJob>(job);
|
||||||
@@ -80,33 +81,24 @@ void DrawFinalPass::Draw(RenderScene& scene)
|
|||||||
} else {
|
} else {
|
||||||
glBindTexture(GL_TEXTURE_2D, m_WhiteTexture->m_Texture);
|
glBindTexture(GL_TEXTURE_2D, m_WhiteTexture->m_Texture);
|
||||||
}
|
}
|
||||||
tempTime += 0.01f;
|
|
||||||
//TODO: Fixa så att modelsJobs kan spela upp olika animationer och så att den kan få in en tid istället för 1.0f - Hälsningar Johan och Andreas :)
|
|
||||||
if (modelJob->Model->m_RawModel->m_Skeleton != nullptr) {
|
|
||||||
auto animation = modelJob->Model->m_RawModel->m_Skeleton->GetAnimation("running");
|
|
||||||
if (animation != nullptr) {
|
|
||||||
std::vector<glm::mat4> frameBones = modelJob->Model->m_RawModel->m_Skeleton->GetFrameBones(
|
|
||||||
*animation,
|
|
||||||
tempTime
|
|
||||||
glActiveTexture(GL_TEXTURE1);
|
glActiveTexture(GL_TEXTURE1);
|
||||||
glBindTexture(GL_TEXTURE_2D, m_BlackTexture->m_Texture);
|
if (modelJob->IncandescenceTexture != nullptr) {
|
||||||
|
glBindTexture(GL_TEXTURE_2D, modelJob->IncandescenceTexture->m_Texture);
|
||||||
/*if(modelJob->GlowMap != nullptr) {
|
|
||||||
glBindTexture(GL_TEXTURE_2D, modelJob->GlowMap->m_Texture);
|
|
||||||
} else {
|
} else {
|
||||||
glBindTexture(GL_TEXTURE_2D, m_BlackTexture->m_Texture);
|
glBindTexture(GL_TEXTURE_2D, m_BlackTexture->m_Texture);
|
||||||
}*/
|
|
||||||
);
|
|
||||||
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*if(modelJob->GlowMap != nullptr) {
|
||||||
|
glBindTexture(GL_TEXTURE_2D, modelJob->GlowMap->m_Texture);
|
||||||
|
} else {
|
||||||
|
glBindTexture(GL_TEXTURE_2D, m_BlackTexture->m_Texture);
|
||||||
|
}*/
|
||||||
|
|
||||||
glBindVertexArray(modelJob->Model->VAO);
|
glBindVertexArray(modelJob->Model->VAO);
|
||||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, modelJob->Model->ElementBuffer);
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, modelJob->Model->ElementBuffer);
|
||||||
glDrawElements(GL_TRIANGLES, modelJob->EndIndex - modelJob->StartIndex + 1, GL_UNSIGNED_INT, (void*)(modelJob->StartIndex * sizeof(unsigned int)));
|
glDrawElements(GL_TRIANGLES, modelJob->EndIndex - modelJob->StartIndex + 1, GL_UNSIGNED_INT, (void*)(modelJob->StartIndex * sizeof(unsigned int)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_FinalPassFrameBuffer.Unbind();
|
|
||||||
GLERROR("DrawFinalPass::Draw: END");
|
GLERROR("DrawFinalPass::Draw: END");
|
||||||
delete state;
|
delete state;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -273,7 +273,6 @@ RawModelAssimp::RawModelAssimp(std::string fileName)
|
|||||||
|
|
||||||
m_Skeleton->Animations[animationName] = skelAnim;
|
m_Skeleton->Animations[animationName] = skelAnim;
|
||||||
}
|
}
|
||||||
int k = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RawModelAssimp::~RawModelAssimp()
|
RawModelAssimp::~RawModelAssimp()
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ RawModelCustom::RawModelCustom(std::string fileName)
|
|||||||
ReadMeshFile(fileName);
|
ReadMeshFile(fileName);
|
||||||
ReadMaterialFile(fileName);
|
ReadMaterialFile(fileName);
|
||||||
ReadAnimationFile(fileName);
|
ReadAnimationFile(fileName);
|
||||||
int k = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RawModelCustom::ReadMeshFile(std::string filePath)
|
void RawModelCustom::ReadMeshFile(std::string filePath)
|
||||||
|
|||||||
@@ -51,18 +51,10 @@ void RenderSystem::fillModels(std::list<std::shared_ptr<RenderJob>>& jobs)
|
|||||||
model = ResourceManager::Load<::Model, true>(resource);
|
model = ResourceManager::Load<::Model, true>(resource);
|
||||||
} catch (const Resource::StillLoadingException&) {
|
} catch (const Resource::StillLoadingException&) {
|
||||||
//continue;
|
//continue;
|
||||||
#ifdef USING_ASSIMP_AS_IMPORTER
|
model = ResourceManager::Load<::Model>("Models/Core/Error.mesh");
|
||||||
model = ResourceManager::Load<::Model>("Models/WidgetPlaneZ.obj"); // 360NoScope StillLoading mesh
|
|
||||||
#else
|
|
||||||
model = ResourceManager::Load<::Model>("Models/WidgetPlaneZ.mesh");
|
|
||||||
#endif
|
|
||||||
} catch (const std::exception&) {
|
} catch (const std::exception&) {
|
||||||
try {
|
try {
|
||||||
#ifdef USING_ASSIMP_AS_IMPORTER
|
model = ResourceManager::Load<::Model>("Models/Core/Error.mesh");
|
||||||
model = ResourceManager::Load<::Model>("Models/WidgetPlaneZ.obj"); // 360NoScope Error mesh
|
|
||||||
#else
|
|
||||||
model = ResourceManager::Load<::Model>("Models/WidgetPlaneZ.mesh");
|
|
||||||
#endif
|
|
||||||
} catch (const std::exception&) {
|
} catch (const std::exception&) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,6 @@ void Skeleton::AccumulateBoneTransforms(bool noRootMotion, const Animation::Keyf
|
|||||||
|
|
||||||
boneMatrix = parentMatrix * (glm::translate(positionInterp) * glm::toMat4(rotationInterp) * glm::scale(scaleInterp));
|
boneMatrix = parentMatrix * (glm::translate(positionInterp) * glm::toMat4(rotationInterp) * glm::scale(scaleInterp));
|
||||||
boneMatrices[bone->ID] = boneMatrix * bone->OffsetMatrix;
|
boneMatrices[bone->ID] = boneMatrix * bone->OffsetMatrix;
|
||||||
int k = 0;
|
|
||||||
} else {
|
} else {
|
||||||
if (bone->Parent) {
|
if (bone->Parent) {
|
||||||
boneMatrix = parentMatrix; // * glm::inverse(bone->OffsetMatrix);
|
boneMatrix = parentMatrix; // * glm::inverse(bone->OffsetMatrix);
|
||||||
|
|||||||
@@ -19,18 +19,18 @@ public:
|
|||||||
float ReflectionFactor;
|
float ReflectionFactor;
|
||||||
float SpecularExponent;
|
float SpecularExponent;
|
||||||
|
|
||||||
float DiffuseColor[3]{ 1.0f };
|
float DiffuseColor[3]{ 1.0f, 1.0f, 1.0f };
|
||||||
unsigned int ColorMapFileLength = 0;
|
unsigned int ColorMapFileLength = 0;
|
||||||
std::string ColorMapFile;
|
std::string ColorMapFile;
|
||||||
|
|
||||||
float SpecularColor[3]{ 1.0f };
|
float SpecularColor[3]{ 1.0f, 1.0f, 1.0f };
|
||||||
unsigned int SpecularMapFileLength = 0;
|
unsigned int SpecularMapFileLength = 0;
|
||||||
std::string SpecularMapFile;
|
std::string SpecularMapFile;
|
||||||
|
|
||||||
unsigned int NormalMapFileLength = 0;
|
unsigned int NormalMapFileLength = 0;
|
||||||
std::string NormalMapFile;
|
std::string NormalMapFile;
|
||||||
|
|
||||||
float IncandescenceColor[3]{ 1.0f };
|
float IncandescenceColor[3]{ 1.0f, 1.0f, 1.0f };
|
||||||
unsigned int IncandescenceMapFileLength = 0;
|
unsigned int IncandescenceMapFileLength = 0;
|
||||||
std::string IncandescenceMapFile;
|
std::string IncandescenceMapFile;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user