Do not write specular value in gi/diffuseenvmap

This commit is contained in:
vlj
2014-06-03 17:40:21 +02:00
parent 8c7b586f45
commit d4fe539385
3 changed files with 8 additions and 15 deletions

View File

@@ -4,15 +4,8 @@ uniform float redLmn[9];
uniform sampler2D ntex;
uniform mat4 TransposeViewMatrix;
#if __VERSION__ >= 130
in vec2 uv;
out vec4 Diff;
out vec4 Spec;
#else
varying vec2 uv;
#define Diff gl_FragData[0]
#define Spec gl_FragData[1]
#endif
vec3 DecodeNormal(vec2 n);
@@ -43,5 +36,4 @@ void main(void)
float b = dot(extendednormal, bmat * extendednormal);
Diff = max(0.25 * vec4(r, g, b, .1), vec4(0.));
Spec = vec4(0.);
}

View File

@@ -39,8 +39,7 @@ vec3 SH2RGB (in vec4 sh_r, in vec4 sh_g, in vec4 sh_b, in vec3 dir)
}
in vec2 uv;
layout (location = 0) out vec4 Diffuse;
layout (location = 1) out vec4 Specular;
out vec4 Diffuse;
vec3 DecodeNormal(vec2 n);
vec4 getPosFromUVDepth(vec3 uvDepth, mat4 InverseProjectionMatrix);
@@ -97,5 +96,4 @@ void main()
GI /= 4;
Diffuse = max(16. * vec4(GI, 1.), vec4(0.));
Specular = vec4(0.);
}

View File

@@ -995,9 +995,15 @@ void IrrDriver::renderLights(unsigned pointlightcount)
return;
if (UserConfigParams::m_gi)
{
m_rtts->getFBO(FBO_TMP1_WITH_DS).Bind();
m_post_processing->renderGI(rh_matrix, rh_extend, m_rtts->getRH().getRTT()[0], m_rtts->getRH().getRTT()[1], m_rtts->getRH().getRTT()[2]);
if (SkyboxCubeMap)
m_post_processing->renderDiffuseEnvMap(blueSHCoeff, greenSHCoeff, redSHCoeff);
m_rtts->getFBO(FBO_COMBINED_TMP1_TMP2).Bind();
}
if (SkyboxCubeMap)
if (SkyboxCubeMap || !UserConfigParams::m_gi)
irr_driver->getSceneManager()->setAmbientLight(SColor(0, 0, 0, 0));
// Render sunlight if and only if track supports shadow
@@ -1009,10 +1015,7 @@ void IrrDriver::renderLights(unsigned pointlightcount)
m_post_processing->renderSunlight();
}
renderPointLights(MIN2(pointlightcount, MAXLIGHT));
if (SkyboxCubeMap)
m_post_processing->renderDiffuseEnvMap(blueSHCoeff, greenSHCoeff, redSHCoeff);
}
void IrrDriver::renderSSAO()