From bd27ac1ee15437d1555768336de505fb6c862f90 Mon Sep 17 00:00:00 2001 From: Jonathas Costa Date: Wed, 30 Oct 2019 05:47:22 -0400 Subject: [PATCH] Issue/988 (#989) * Added new FXAA implementation for test. * Fixed ghosting MW. --- src/rendering/framebufferrenderer.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/rendering/framebufferrenderer.cpp b/src/rendering/framebufferrenderer.cpp index 2007f13a53..284d2920c3 100644 --- a/src/rendering/framebufferrenderer.cpp +++ b/src/rendering/framebufferrenderer.cpp @@ -406,10 +406,16 @@ void FramebufferRenderer::applyTMO(float blackoutFactor) { _hdrFilteringProgram->setUniform(_hdrUniformCache.Saturation, _saturation); _hdrFilteringProgram->setUniform(_hdrUniformCache.Value, _value); + glDepthMask(false); + glDisable(GL_DEPTH_TEST); + glBindVertexArray(_screenQuad); glDrawArrays(GL_TRIANGLES, 0, 6); glBindVertexArray(0); + glDepthMask(true); + glEnable(GL_DEPTH_TEST); + _hdrFilteringProgram->deactivate(); } @@ -440,10 +446,16 @@ void FramebufferRenderer::applyFXAA() { glm::vec2 inverseScreenSize(1.f/_resolution.x, 1.f/_resolution.y); _fxaaProgram->setUniform(_fxaaUniformCache.inverseScreenSize, inverseScreenSize); + glDepthMask(false); + glDisable(GL_DEPTH_TEST); + glBindVertexArray(_screenQuad); glDrawArrays(GL_TRIANGLES, 0, 6); glBindVertexArray(0); + glDepthMask(true); + glEnable(GL_DEPTH_TEST); + _fxaaProgram->deactivate(); } @@ -633,7 +645,7 @@ void FramebufferRenderer::updateResolution() { _resolution.y, 0, GL_RGBA, - GL_BYTE, + GL_UNSIGNED_BYTE, nullptr ); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); @@ -894,7 +906,7 @@ void FramebufferRenderer::render(Scene* scene, Camera* camera, float blackoutFac if (doPerformanceMeasurements) { perfInternal = std::make_unique( "FramebufferRenderer::render::deferredTasks" - ); + ); } performDeferredTasks(tasks.deferredcasterTasks); } @@ -912,6 +924,8 @@ void FramebufferRenderer::render(Scene* scene, Camera* camera, float blackoutFac if (_enableFXAA) { glBindFramebuffer(GL_FRAMEBUFFER, _fxaaBuffers.fxaaFramebuffer); + glDrawBuffers(1, ColorAttachment0Array); + glDisable(GL_BLEND); } else { // When applying the TMO, the result is saved to the default FBO to be displayed