Ich habe mit Schattenzuordnung in OpenGL unter Verwendung von Tiefenstrukturen herumgespielt. Die Tiefenstruktur ist in Ordnung und ich kann sie auf die Szene abbilden, aber ich habe einige seltsame Artefakte auf der Rückseite des Objekts:
Meine Frage ist, was dies verursacht und wie ich es beheben kann.
Der Fragment-Shader, den ich verwende, ist ziemlich einfach (ich habe die Farbe der Einfachheit halber entfernt, falls Sie sich fragen, warum es hier kein Blau gibt):
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);
}
Bearbeiten: Wie gewünscht, Mindestarbeitsbeispiel-Screenshot, der nur den obigen Code verwendet (keine Farbe).