Shadow Map ———— PCF(percentage-closer filtering)

PCF(Percentage-Closer Filtering)是一种解决Shadow Map锯齿问题的技术,通过采样附近像素的深度值来实现阴影的抗锯齿。文章介绍了PCF的工作原理、优点和缺点,并提供了相关的算法代码示例,包括Z-Prepass、渲染场景和PCF阴影计算。此外,还讨论了Depth Bias问题及其解决方案。
摘要由CSDN通过智能技术生成

Shadow Map ———— PCF(percentage-closer filtering)
图片稍后补上

1、PCF解决了什么问题
SSM生成的阴影会出现锯齿(shadow map的精度问题),没有AA。PCF实现了对shadowmap的AA

2、PCF如何实现AA
解决锯齿问题的方法有好多,其中最简单的就是在锯齿附近添加黑白之间的灰色,PCF就是实现了这一种方法。
在SSM算法中,物体的实际深度将会与shadowmap的深度进行比较,如果比shadowmap的深度小,则出现阴影。
这里有个问题,就是这种比较结果永远只有两种可能0或者1,这个导致SSM无法进行AA。
PCF利用采样的方法,对shadowmap的特定像素附近的像素进行采样,并取其平均值,这样就可以得到一个0~1的数,也就实现了AA

3、PCF的缺点:
1、无法提前做预处理,一旦做预处理(blur,插值),都会导致shadowmap的特定像素的深度出现误差,由于最后的结果是根据各个像素进行均值,所以这会导致最终阴影也出现误差
2、传统的PCF每一次采样过滤耗费很大(每次都要遍历附近的几个点,虽然用了泊松分布,但还是不可避免),PCSS算法的出现基本解决了该问题(通过动态计算采样范围,使用FindBlocker剔除非阴影点,额….在下面的PCF算法其实也基本实现了这两个)
3、半影不够逼真…PCSS算法也解决了(通过计算准确的半影范围??有待考究)…嘻嘻~

4、PCF的有关你资料:
http://www.eng.utah.edu/~cs5610/handouts/reeves87.pdf
http://http.developer.nvidia.com/GPUGems/gpugems_ch11.html
http://developer.download.nvidia.com/presentations/2008/GDC/GDC08_SoftShadowMapping.pdf
http://developer.download.nvidia.com/SDK/9.5/Samples/samples.html(这里有DEMO,基本没用

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值