纯粹记录帖,理解不够深..有错求纠正
1、SSM:最最最传统的shadowmap
PSM系列:硬阴影
2、PSM:(不太清楚..)
由于SSM是对整个空间进行采样,所以当范围非常大的时候,贴图精度就会降低。但是其实我们只需要对有阴影的地方采样即可,这样可以大大提高shadow map的精度。
PSM就是将shadowmap的生成放到PPS(NDC,但还没有映射到【-1,1】之间的时候)上(然后就近大远小嘛~额)
3、LisPSM:(也不太清楚)
当投影物在摄像机后面的时候,PSM采用的是虚拟摄像机,但这种方法不给力,LisPSM就是为了解决这个产生的
4、TSM:
对于前面两个算法,都有不可以解决的问题:当摄像机移动,旋转的时候,shadowmap的精度会随着投影物体的加入而产生剧烈的变化,TSM的方法是建造一个梯形(视锥体跟光椎体的重合区域),该梯形不会因为上述问题而剧烈变化,然后将梯形shadowmap经过以下列转换转到纹理上
PCF系列:软阴影(硬阴影缺乏渐变,导致阴影不是白就是黑)
5、PCF:为了得到软阴影的效果,PCF采取对某个像素点的附近采样,然后将他们的深度值进行统计并取其平均值,得到的将是一个0~1的值,这样就可以模拟出软阴影了
6、PCSS:PCF有一个很大的缺陷在于他不能利用传统的纹理采样优化策略(如mipmap),PCSS则是为了解决这个问题
VSM系列:软阴影
7、VSM:同样是统计,不过他是利用概率论的知识,方差进行统计并取得0~1
8、LVSM:VSM有个弊端就是会出现lightbleeding 这是由于里面用到的切比雪夫不等式的性质决定的。LVSM采取分层的方法(Layered),尽可能地减少这个问题
CSM系列
9、CSM:(不太了解)
同样采用分层方法解决SSM,PSM的问题
ESM系列
10、ESM:(不太了解)
跟VSM差不多,也是用巧妙的方法,使得线性插值成为可能(0~1)