我正在尝试在opengl中实现阴影贴图。它工作正常,但是别名是可见的,所以我决定使用sampler2Dshadow和shadow2D,因为我已经读过它作为简单的抗锯齿解决方案。但是一旦我使用它,它会在整个场景中产生非常显着的阴影痤疮。请注意,当使用带有texture2D的sampler2D时,没有。 这是有意的吗?如果是这样,我该如何解决呢?
这是使用sampler2DShadow时的外观:
这是处理阴影的片段着色器的一部分:
float theta = clamp(dot(normalize(lightVector), normalize(vertNormal)), 0, 1);
float bias = 0.005*tan(acos(theta));
float visibility = 1.0;
if ( shadow2D(shadowTex, shadowCoord).z < shadowCoord.z - bias){
visibility = 0.5;
}
color = vec4(color.xyz * visibility, 1);