很早就想总结下这类upsample算法。
准备工作
参考论文1,利用硬件Filter先得到:
Variance Shadow Mapping
考虑光源视角的深度为一个随机变量x。由切比雪夫不等式单边公式(推导2),
深度大于给定值t的概率有一个上界:
论文1假设把深度为d1的平面投影到深度为d2的平行平面,那么在深度为d1的平面边缘,可以假设投影深度正好为d2的概率为p,那么深度的期望为:
深度小于d2的概率的上界:
化简后刚好为 p,当然这是一种理想情况,只有一次投影,一个遮挡物, 但仍然可以用上述等式估算 p (其实就是一个微分级别的PCF值)。
但是,在Depth变化较大的区域(方差较大),VSM会有缺陷(Light bleeding)。因为根据切比雪夫不等式,在方差较大的情况下,(t-μ)必须足够大,才能让不等式右边趋于0。于是又有了LVSM来解决这个问题。
Variance Depth Map
erf的计算参考龚大的文章5
VDM不光能用在粒子的渲染。凡是半透明、需要巨大填充率、颜色变化较平滑的内容,都可以用VDM来渲染,最后一次混合到全分辨率的场景上。比如大气效果、体积光,都符合这个条件。
其他
这类都是利用统计手段估计一个较合理的upsample混合方式,非常棒的想法。