Improve ao and bloom.
This commit is contained in:
parent
77b289fed6
commit
8fc383206f
@ -11,5 +11,5 @@ vec3 getLightFactor(float specMapValue)
|
|||||||
vec3 SpecularComponent = texture(SpecularMap, tc).xyz;
|
vec3 SpecularComponent = texture(SpecularMap, tc).xyz;
|
||||||
float ao = texture(SSAO, tc).x;
|
float ao = texture(SSAO, tc).x;
|
||||||
vec3 tmp = ao * ambient + DiffuseComponent + SpecularComponent * specMapValue;
|
vec3 tmp = ao * ambient + DiffuseComponent + SpecularComponent * specMapValue;
|
||||||
return tmp * (0.4 + ao*0.6);
|
return tmp * ao;
|
||||||
}
|
}
|
@ -441,11 +441,6 @@ void PostProcessing::renderPassThrough(ITexture *tex)
|
|||||||
glUniform1i(FullScreenShader::PassThroughShader::uniform_texture, 0);
|
glUniform1i(FullScreenShader::PassThroughShader::uniform_texture, 0);
|
||||||
|
|
||||||
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
|
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
|
||||||
glBindVertexArray(0);
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
|
||||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
|
|
||||||
glEnable(GL_DEPTH_TEST);
|
|
||||||
glDisable(GL_BLEND);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PostProcessing::renderPassThrough(GLuint tex)
|
void PostProcessing::renderPassThrough(GLuint tex)
|
||||||
@ -682,11 +677,18 @@ void PostProcessing::render()
|
|||||||
renderPassThrough(irr_driver->getRTT(RTT_QUARTER1));
|
renderPassThrough(irr_driver->getRTT(RTT_QUARTER1));
|
||||||
|
|
||||||
// Blur it for distribution.
|
// Blur it for distribution.
|
||||||
|
renderGaussian6Blur(irr_driver->getRTT(RTT_HALF1), irr_driver->getRTT(RTT_HALF2), 2.f / UserConfigParams::m_width, 2.f / UserConfigParams::m_height);
|
||||||
|
renderGaussian6Blur(irr_driver->getRTT(RTT_QUARTER1), irr_driver->getRTT(RTT_QUARTER2), 4.f / UserConfigParams::m_width, 4.f / UserConfigParams::m_height);
|
||||||
renderGaussian6Blur(irr_driver->getRTT(RTT_EIGHTH1), irr_driver->getRTT(RTT_EIGHTH2), 8.f / UserConfigParams::m_width, 8.f / UserConfigParams::m_height);
|
renderGaussian6Blur(irr_driver->getRTT(RTT_EIGHTH1), irr_driver->getRTT(RTT_EIGHTH2), 8.f / UserConfigParams::m_width, 8.f / UserConfigParams::m_height);
|
||||||
|
|
||||||
// Additively blend on top of tmp1
|
// Additively blend on top of tmp1
|
||||||
drv->setRenderTarget(out, false, false);
|
drv->setRenderTarget(out, false, false);
|
||||||
renderBloomBlend(irr_driver->getRTT(RTT_EIGHTH1));
|
glEnable(GL_BLEND);
|
||||||
|
glBlendFunc(GL_ONE, GL_ONE);
|
||||||
|
glBlendEquation(GL_FUNC_ADD);
|
||||||
|
renderPassThrough(irr_driver->getRTT(RTT_HALF1));
|
||||||
|
renderPassThrough(irr_driver->getRTT(RTT_QUARTER1));
|
||||||
|
renderPassThrough(irr_driver->getRTT(RTT_EIGHTH1));
|
||||||
} // end if bloom
|
} // end if bloom
|
||||||
|
|
||||||
in = irr_driver->getRTT(RTT_TMP1);
|
in = irr_driver->getRTT(RTT_TMP1);
|
||||||
@ -697,6 +699,8 @@ void PostProcessing::render()
|
|||||||
PROFILER_PUSH_CPU_MARKER("- Godrays", 0xFF, 0x00, 0x00);
|
PROFILER_PUSH_CPU_MARKER("- Godrays", 0xFF, 0x00, 0x00);
|
||||||
if (m_sunpixels > 30)//World::getWorld()->getTrack()->hasGodRays() && ) // god rays
|
if (m_sunpixels > 30)//World::getWorld()->getTrack()->hasGodRays() && ) // god rays
|
||||||
{
|
{
|
||||||
|
glDisable(GL_BLEND);
|
||||||
|
glEnable(GL_DEPTH_TEST);
|
||||||
// Grab the sky
|
// Grab the sky
|
||||||
drv->setRenderTarget(out, true, false);
|
drv->setRenderTarget(out, true, false);
|
||||||
// irr_driver->getSceneManager()->drawAll(ESNRP_SKY_BOX);
|
// irr_driver->getSceneManager()->drawAll(ESNRP_SKY_BOX);
|
||||||
|
Loading…
Reference in New Issue
Block a user