vsm 的理解

vsm相对于最原始的sm多了这样一个部分

if(depthcampare <=zInSM)

fPercentLit  = 1;//noshadow;

else

{

variance = zzInSM -zInSM *zInSM;

fPercentLit  = pow(variance/(variance+(depthcompare-zInSM)^2),4.0f);//这是要讨论的部分

}

这部分是给sm的边缘做模糊的,这样就不用像pcf那样采样那么多次了。

有了这个并不用对全屏shadowmap那个rt进行blur效果就可以接受,因我们最后有些后处理的全屏blur。

--

我认为,vsm有两次blurs

第一次在出了sm之后,对画了这shadowmap的rendertarget进行gussian blur

第二次在采样sm确定是否形成阴影的部分,就是上文讨论的那个v/(v+d*d),对shadow边缘进行blur

-----------------------

上面的理解 ,是错的

原文地址:https://www.cnblogs.com/minggoddess/p/5530336.html