J'ai joué avec le mapping d'ombres dans OpenGL en utilisant des textures de profondeur. La texture de la profondeur est fine et je peux la cartographier sur la scène mais j'ai des objets étranges à l'arrière de l'objet:
Ma question est de savoir ce qui cause cela et comment puis-je y remédier?
Le shader de fragment que j'utilise est assez simple (j'ai supprimé la couleur pour plus de simplicité au cas où vous vous demanderiez pourquoi il n'y a pas de bleu ici):
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);
}
Modifier: comme demandé, capture d'écran exemple de travail minimum qui utilise uniquement le code ci-dessus (pas de couleur).