我要做shadow map,将深度值存在纹理里面,结果读出来全是1怎么办?
我要做shadow map,将深度值存在纹理里面,结果读出来全是1怎么办?
纹理的内部格式定义为glTexImage2D ( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 512, 512, 0,GL_DEPTH_COMPONENT , GL_UNSIGNED_INT, NULL ); 结果读出来全是1
"precision mediump float; \n"
"uniform sampler2D s_shadowMap; \n"
"varying vec4 v_color; \n"
"varying vec4 v_shadowCoord; \n"
"float lookup (float x,float y) \n"
"{ \n"
" float distanceFromLight = texture2D( s_shadowMap, v_shadowCoord.xy).z; \n"
" return float(distanceFromLight > v_shadowCoord.z); \n"
"} \n"
"void main() \n"
"{ \n"
" // 3x3 kernel \n"
" float sum = 0.0; \n"
" float x, y; \n"
" for ( x = -0.5; x <= 0.5; x += 0.5 ) \n"
" for ( y = -0.5; y <= 0.5; y += 0.5 ) \n"
" sum += lookup ( x, y ); \n"
" sum = sum * 0.11; \n"
" gl_FragColor = v_color * sum ; \n"
"}