Home Forums Games202-高质量实时渲染 [作业1]关于PCSS边界明显的Tip Reply To: [作业1]关于PCSS边界明显的Tip

#8206 Score: 0
happyfire
Participant
4 pts

请问能说清楚一些吗?最好能上代码。
PCF里面比较的是shadowmap中的深度和当前片段在LightSpace中的深度。这两个深度都是正交投影计算出来的吧,而且使用的都是LightMVP矩阵。
区别只是shadowmap中的深度是从gl_FragCoord.z读取出来的,这个值是range到了0~1(默认)。而用来和shadowmap比较的深度计算是vPositionFromLight = uLightMVP * vec4(aVertexPosition, 1.0);
这个就是clip space的,当然对于正交投影,w=1,因此就是NDC的。因此范围是[-1,1],因此只要转换到[0,1]就可以和shadow map解压出来的深度比较了。
如果我分析的没问题的话,这里面找不到需要变换到线性深度(eye space z,范围[n,f])的地方呀?而且用的都是一样的矩阵,即便不是正交投影,是透视投影,应该也没问题吧?

另外最终出的效果和采样数,filterSize都有关系,你确定其他参数都没变?