Real time shadows 2
Deeper Look at PCF

x+ (kai)符号函数,x > 0 ? 1 : 0;
上面写错了,是 In PCF
PCF 是在 ShadowMap 上的对像素点计算后的值的卷积,卷积符号如上
而不是直接对 ShadowMap 卷积完再计算

Revisiting PCSS

PCSS 是一个 filter 区域根据平均遮挡物距离变化的 PCF
第一步第三步比较缓慢,可以进行稀疏采样进行优化,稀疏采样会导致噪声,要在图像空间降噪
Variance Soft Shadow Mapping 方差软阴影
针对 PCSS 速度慢提出的优化方案,Flicker 噪声导致的帧连续播放时的画面抖动
Percentage Closer,如果不加权,一个区域内有多少百分比的像素点比着色点要近
用正态分布 Normal distribution 假设像素点距离分布,需要遮挡物的平均深度期望(mean)和遮挡物方差(variance)
Mean
mipmap
Summed Area tables (SAT)
Variance
Var(X) = E(X^2) - E^2(X)
为了算方差,需要额外记录深度平方

PDF : 概率分布函数,Gaussian 是一种 PDF
CDF : 概率积分函数,误差函数
但是求 CDF 不好计算,没有解析解只有数值解
切比雪夫不等式

通过 mean 和 variance 快速得到当前点对于所有遮挡物的百分比排名
当遮挡物分布与高斯分布不符合, 容易出现 Light Leaking
t 在均值的右边才比较准,所以是遮挡物的平均深度而不是区域内像素点的平均深度
最终结果非常快,O(1) 时间

Anything else 是求平均,
求平均

需要求 Zocc,遮挡物的平均深度,即期望 E
假设非遮挡物的平均深度等于当前着色点深度
Zavg 通过范围查询平均值取得
范围查询平均值 Range Query
Mipmap 预处理图片平均,但是 Mipmap 通过双线性,三线性插值,可能会不准

SAT for Range Query
前缀和 Sum Area Table
提前保存累加信息到纹理上来支持大范围查找

不足
阴影比较光滑,单一的时候没法看作是正态分布

Moment shadow mapping
使用高阶的矩取描述分布, 使用多项式来近似 CDF

最后更新于
这有帮助吗?