diff --git a/resources/Shaders/ForwardPlus.frag.glsl b/resources/Shaders/ForwardPlus.frag.glsl index 6a810036..3fae9eb6 100644 --- a/resources/Shaders/ForwardPlus.frag.glsl +++ b/resources/Shaders/ForwardPlus.frag.glsl @@ -132,18 +132,17 @@ void main() totalLighting.Specular += result.Specular; } - //sceneColor += Input.DiffuseColor; vec4 fragment = Input.DiffuseColor * (totalLighting.Diffuse + totalLighting.Specular) * texel * Color; - bloomColor = vec4(0.3, 0.8, 0.6, 1.0); + //bloomColor = vec4(0.3, 0.8, 0.6, 1.0); sceneColor = vec4(fragment.xyz, 1.0); //These if statements should be removed. -/* - if(fragment.x > 0.5 || fragment.y > 0.5 || fragment.z > 0.5) { - bloomColor = fragment; + + if(fragment.x > 1 || fragment.y > 1 || fragment.z > 1) { + bloomColor = vec4(fragment.xyz, 1.0); } else { - bloomColor = vec4(0.3, 0.5, 0.8, 1.0); - }*/ + bloomColor = vec4(0.0, 0.0, 0.0, 1.0); + } //sceneColor += Input.DiffuseColor * (totalLighting.Diffuse) * texel * Color; //sceneColor += Input.DiffuseColor + vec4(0.0, LightGrids.Data[currentTile].Amount/3, 0, 1); diff --git a/src/Engine/Rendering/DrawFinalPass.cpp b/src/Engine/Rendering/DrawFinalPass.cpp index 57940971..5a9f706e 100644 --- a/src/Engine/Rendering/DrawFinalPass.cpp +++ b/src/Engine/Rendering/DrawFinalPass.cpp @@ -27,6 +27,7 @@ void DrawFinalPass::InitializeFrameBuffers() m_BloomFrameBuffer.AddResource(std::shared_ptr(new Texture2D(&m_SceneTexture, GL_COLOR_ATTACHMENT0))); m_BloomFrameBuffer.AddResource(std::shared_ptr(new Texture2D(&m_BloomTexture, GL_COLOR_ATTACHMENT1))); m_BloomFrameBuffer.Generate(); + } void DrawFinalPass::InitializeShaderPrograms() @@ -79,8 +80,8 @@ void DrawFinalPass::Draw(RenderScene& scene) continue; } } + m_BloomFrameBuffer.Unbind(); GLERROR("DrawFinalPass::Draw: END"); - } void DrawFinalPass::GenerateTexture(GLuint* texture, GLenum wrapping, GLenum filtering, glm::vec2 dimensions, GLint internalFormat, GLint format, GLenum type) const diff --git a/src/Engine/Rendering/DrawFinalPassState.cpp b/src/Engine/Rendering/DrawFinalPassState.cpp index 5b4bbf3b..43047f05 100644 --- a/src/Engine/Rendering/DrawFinalPassState.cpp +++ b/src/Engine/Rendering/DrawFinalPassState.cpp @@ -8,7 +8,7 @@ DrawFinalPassState::DrawFinalPassState() BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); Enable(GL_DEPTH_TEST); Enable(GL_CULL_FACE); - ClearColor(glm::vec4(200.f / 255, 0.f / 255, 200.f / 255, 0.f)); + ClearColor(glm::vec4(155.f / 255, 0.f / 255, 155.f / 255, 0.f)); Clear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); } diff --git a/src/Engine/Rendering/FrameBuffer.cpp b/src/Engine/Rendering/FrameBuffer.cpp index 79507875..b7e908cc 100644 --- a/src/Engine/Rendering/FrameBuffer.cpp +++ b/src/Engine/Rendering/FrameBuffer.cpp @@ -70,10 +70,8 @@ void FrameBuffer::Generate() } } - - GLenum* bufferTextures = &attachments[0]; - glDrawBuffers(1, bufferTextures); + glDrawBuffers(attachments.size(), bufferTextures); if (GLenum frameBufferStatus = glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { LOG_ERROR("FrameBuffer incomplete: 0x%x\n", frameBufferStatus); diff --git a/src/Engine/Rendering/Renderer.cpp b/src/Engine/Rendering/Renderer.cpp index f08bfafd..894f358f 100644 --- a/src/Engine/Rendering/Renderer.cpp +++ b/src/Engine/Rendering/Renderer.cpp @@ -99,8 +99,8 @@ void Renderer::Draw(RenderFrame& frame) m_LightCullingPass->FillLightList(*scene); m_LightCullingPass->CullLights(*scene); m_DrawFinalPass->Draw(*scene); - m_DrawScreenQuadPass->Draw(m_DrawFinalPass->m_SceneTexture); - //m_DrawScreenQuadPass->Draw(m_DrawFinalPass->m_BloomTexture); + //m_DrawScreenQuadPass->Draw(m_DrawFinalPass->m_SceneTexture); + m_DrawScreenQuadPass->Draw(m_DrawFinalPass->m_BloomTexture); //m_DrawScenePass->Draw(rq); GLERROR("Renderer::Draw m_DrawScenePass->Draw");