Real time shadows 2
最后更新于
最后更新于
x+ (kai)符号函数,x > 0 ? 1 : 0;
上面写错了,是 In PCF
PCF 是在 ShadowMap 上的对像素点计算后的值的卷积,卷积符号如上
而不是直接对 ShadowMap 卷积完再计算
PCSS 是一个 filter 区域根据平均遮挡物距离变化的 PCF
第一步第三步比较缓慢,可以进行稀疏采样进行优化,稀疏采样会导致噪声,要在图像空间降噪
针对 PCSS 速度慢提出的优化方案,Flicker 噪声导致的帧连续播放时的画面抖动
Percentage Closer,如果不加权,一个区域内有多少百分比的像素点比着色点要近
用正态分布 Normal distribution 假设像素点距离分布,需要遮挡物的平均深度期望(mean)和遮挡物方差(variance)
mipmap
Summed Area tables (SAT)
Var(X) = E(X^2) - E^2(X)
为了算方差,需要额外记录深度平方
PDF : 概率分布函数,Gaussian 是一种 PDF
CDF : 概率积分函数,误差函数
但是求 CDF 不好计算,没有解析解只有数值解
通过 mean 和 variance 快速得到当前点对于所有遮挡物的百分比排名
当遮挡物分布与高斯分布不符合, 容易出现 Light Leaking
t 在均值的右边才比较准,所以是遮挡物的平均深度而不是区域内像素点的平均深度
Anything else 是求平均,
需要求 Zocc,遮挡物的平均深度,即期望 E
假设非遮挡物的平均深度等于当前着色点深度
Zavg 通过范围查询平均值取得
Mipmap 预处理图片平均,但是 Mipmap 通过双线性,三线性插值,可能会不准
SAT for Range Query
前缀和 Sum Area Table
提前保存累加信息到纹理上来支持大范围查找
阴影比较光滑,单一的时候没法看作是正态分布
使用高阶的矩取描述分布, 使用多项式来近似 CDF