vsm 的理解

minggoddess發表於2016-05-26

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

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

上面的理解 ,是錯的

相關文章