私は深度テクスチャを使用してOpenGLのシャドウマッピングをいじっています。深度テクスチャは細かいので、シーンにマッピングできますが、オブジェクトの裏側に奇妙なアーティファクトがあります。
私の質問は、これを引き起こしているものであり、どうすれば修正できますか?
私が使用しているフラグメントシェーダーはかなり単純です(ここに青がない理由に疑問がある場合に備えて、簡単にするために色を取り除いています)。
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);
}
編集:必要に応じて、上記のコードのみを使用する最低限の作業例のスクリーンショット(色なし)。