Opengl es 阴影贴图:在相同UV上采样

Opengl es 阴影贴图:在相同UV上采样,opengl-es,opengl-es-2.0,shader,shadow,shadow-mapping,Opengl Es,Opengl Es 2.0,Shader,Shadow,Shadow Mapping,当摄影机视图中的两个像素位于阴影贴图上的相同UV上时,我在OpenGL中使用阴影贴图时遇到问题。下面是它的样子: 两个可见阴影出现在同一UV的阴影贴图上,显然侧面的阴影是问题所在。有办法解决这个问题吗 下面是我的片段着色器: float get_shadow(vec4 _shadow_coords, sampler2D _sampler){ if(_shadow_coords.w <= 0.0) return 1.0; float uu = ((_shadow_coord

当摄影机视图中的两个像素位于阴影贴图上的相同UV上时,我在OpenGL中使用阴影贴图时遇到问题。下面是它的样子:

两个可见阴影出现在同一UV的阴影贴图上,显然侧面的阴影是问题所在。有办法解决这个问题吗

下面是我的片段着色器:

float get_shadow(vec4 _shadow_coords, sampler2D _sampler){
    if(_shadow_coords.w <= 0.0) return 1.0;
    float uu = ((_shadow_coords.x / _shadow_coords.w) * 0.5) + 0.5;
    float vv = ((_shadow_coords.y / _shadow_coords.w) * 0.5) + 0.5;
    if(uu <= 0.0) return 1.0;
    if(uu > 1.0) return 1.0;
    if(vv <= 0.0) return 1.0;
    if(vv > 1.0) return 1.0;
    float zz = 0.0, zzz = 0.0;
    zz = unpack(_sampler, vec2(uu, vv));
    zzz = _shadow_coords.z / _shadow_coords.w;
    if(zz < zzz - 0.005) return min_diff;
    return 1.0;
}
float get_shadow(vec4_shadow_坐标,sampler2D_sampler){

如果(\u shadow\u coords.w什么是“\u shadow\u coords”?这是某物的位置吗?shadow\u coords=光源\u矩阵*顶点\u位置