gpu pro1在shadow部分第一篇文章。
box pcf filter improvement:
首先作者对于pcf的box filter提出了一个很好的改进点。
就是避免bilinear filter重复的sample,这样可以把pcf sample数量从3x3降到2x2,或者反过来如果本来就是2x2的,可以达到原先3x3的效果。
直接上图最直观:
结果可以说是非常直接,就是左边的filter的时候,对于v11这个点是sample了多次,那么改成右边这样,其实也没有少。
这个很棒!
separable shadow filter
文中认为如果对于pcf结果使用gaussion filter效果会更好(一般我们就是直接加起来,然后除以sample数的一个平均)。
就是这样,有一些权重:
这里在shader model3的时候需要类似解方程一样,通过对bilinear结果做各种加减乘除获得weighted的结果。
在shader model4里面,可以通过gather()指令,直接对结果进行操作。
其他
其它部分也提到了non-separable filter,contact hardening shadow等,但是实际应用价值和理论营养价值都不高,就略去。