GAMES202 4 Real-Time Shadows 2
A deeper look at pcffilter/convolution:
$[\omega*f](p)=\sum_{q\in \mathcal{N}}^{}\omega(p,q)f(q)$
in PCSS: 实际上也是一个卷积运算来求得Visibility函数
$V(x)=\sum_{q\in \mathcal{N} (p)}^{}\omega(p,q)\cdot \chi^+[D_{SM}(q)-D_{sence}(x)]$
PCF是在图像(模型几何结构的二维投影)层面处理,而非是先shadow map之后再在shadow map上面做模糊。
Revisiting PCSSPCSS的完整算法
Step 1 Blocker Search 遮挡物搜索,在一个确切距离中得到平均遮挡深度。
Step 2 Penumbra Estimate 半影估计,用平均遮挡深度来决定filter size
Step 3 Percentage Closer Filter 用产生的Adaptive filter size进行PCF
哪一步更慢?
第一步和第三步,每 ...
GAMES202 3 Real-Time Shadows 1
Shadow Mapping 生成硬阴影2 pass Algorithm 渲染两边的算法
第一遍,从光源出发,生成sm(Shadow Map)
第二遍,从相机出发,使用sm检测其是否在阴影里
一个完全在图像中的算法:
优点:一旦图像已经生成,不需要知道图像的几何场景
缺点:会产生自遮挡现象,以及锯齿
自遮挡(self occlusion):Shadow Map中的像素会把一个平面采样分成一块一块的阶梯状深度,但是在从相机出发而言,就会认为,地板之间会发生相互遮挡
处理:添加一个可变的Bias,如果不超出这个bias,就忽略遮挡的影响。(但也相应引入detached shadow不接触的阴影)
另一种方法:second-depth shadow mapping,记录次小深度,用中点深度进行遮挡比较。但是没人用,因为模型不能是全平面,
锯齿(Alias)
实时渲染不相信复杂度(哈哈哈哈)(只相信时间,RTR中常数也十分重要)
Approximation in RTR实时渲染中的一个重要的约等于,主要是把积分中的两个函数拆开来:
$\int_{\Omega}f(x)g(x) ...