Ho giocato con la mappatura delle ombre in OpenGL usando trame di profondità. La trama di profondità va bene e posso mapparla sulla scena ma ho alcuni strani artefatti sul retro dell'oggetto:
La mia domanda è: cosa sta causando questo e come posso risolverlo?
Lo shader di frammenti che sto usando è abbastanza semplice (ho eliminato il colore per semplicità nel caso ti stia chiedendo perché qui non c'è blu):
in vec4 vShadowCoord;
uniform sampler2DShadow shadowMap;
out vec4 fragColor;
void main()
{
float bias = 0.005;
float visibility = 1.0;
if (texture(shadowMap, vec3(vShadowCoord.xy, vShadowCoord.z / vShadowCoord.w)) < (vShadowCoord.z - bias) / vShadowCoord.w)
visibility = 0.25;
fragColor = vec4(visibility);
}
Modifica: come richiesto, screenshot minimo di esempio funzionante che utilizza solo il codice sopra (nessun colore).