Original Post
im having some trouble projecting my shadowmap onto geoemtry... so far i would kjust like to render the texture coordinates for the shadowmap onto the terrain... but i get all black values... i suspect im doin something wrong with the lights matrices.. but i dont know what... if i use the current modelprojection matrix it looks just fine... only when i try to use the lights it gets black..
glActiveTexture(GL_TEXTURE3);
DepthFBO.Begin();
gluLookAt( 500,200,500, // Look from the light's position
0.0f, -0.0f, 0.0f, /
0.0f, 1.0f, 0.0f );
m_Cam->Frustum.setCamDef(vec3(500,200,500), vec3(0.0,0.0,0.0), vec3(0.0,1.0,0.0));
float lightproj_matrix[16];
float lightmodel_matrix[16];
glGetFloatv(GL_MODELVIEW_MATRIX, lightmodel_matrix);
glGetFloatv(GL_PROJECTION_MATRIX, lightproj_matrix);
Terrain->DepthShader->use();
Terrain->Render();
Terrain->DepthShader->disable;
DepthFBO.End();
glActiveTexture(GL_TEXTURE2);
MainFBO.Begin();
m_Cam->Update();
Terrain->Shader->use();
Terrain->Shader->sendUniform("TextureMap", 1);
Terrain->Shader->sendUniform("ShadowMap", 3);
Terrain->Shader->sendUniform("lightprojmatrix", lightproj_matrix, false, 4);
Terrain->Shader->sendUniform("lightmodelviewmatrix", lightmodel_matrix, false, 4);
if (WireFrame)
glPolygonMode( GL_FRONT_AND_BACK, GL_LINE );
else
glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
Terrain->Render();
Terrain->Shader->disable;
MainFBO.End();
//"Shader"
//VERTEX
varying vec4 lightProj;
uniform mat4 lightprojmatrix;
uniform mat4 lightmodelviewmatrix;
void main()
{
/* removed code */
gl_Position = gl_ModelViewProjectionMatrix * vec4(WorldPos, 1.0);
lightProj = lightprojmatrix * lightmodelviewmatrix * vec4(WorldPos, 1.0);
}
// FRAGMENT
#version 110
uniform sampler2D TextureMap;
uniform sampler2D ShadowMap;
varying vec4 lightProj;
void main()
{
vec3 pos = (lightProj.xyz/lightProj.w)*0.5+0.5;
gl_FragColor = vec4(pos,1.0);
}