先使用FBO装一个深度贴图 此处要先将镜头移到光源 然后保存深度 这时候z值保存的是最近可见的片元的深度值,这里是重点。
按原始场景来 每个片元 转到光源坐标系下面进行透视除法,然后看看深度是否大于阴影贴图的 大于则在阴影中。
vec3 projCoords = fragPosLightSpace.xyz / fragPosLightSpace.w*0.5+0.5;
curD=projCoords.z;
mapD=texture(shadowMap, projCoords.xy).r
if curD>mapD 阴影中
详细的可以看看learnopengl