
实用性不太好的一篇,里面对image space的一些操作的介绍和应用倒是不错。
主要是讲对pcss(percentage closer soft shadow)进行优化的一个思路。
pcss本身在游戏里面的意义就比较小,性价比太低。
tech
这篇文章是在scene的屏幕空间里面,根据shadow receiver到occluder的距离,来进行不同kernel大小的gaussian blur来达到变半影区的软影的效果。
优化点就是使用gaussian blur是separatable kernel的,所以计算量是O(n+n),而pcss是O(nxn),n越大,这种做法的优势越大。
这里一个关键点还有shadow receiver到occluder距离的这个distance map的构建,这个文章的做法是把light space depth使用一个min filter来降resolution,生成一个coarse min depth map,然后在正常的camera的那个depth buffer里反算出位置,然后和这个light space coarse min depth来算出distance。
这里作者也提到,由于这个和pcss的那种基于kernel的实打实的计算distance方法还是不一样,所以某些情况下,效果会有问题,又搞出其他的方法来弥补,但是始终不能完美。
所以综上,这个是一个不完美的优化方式,优化的是一个性价比很低的阴影feature。

本文探讨了针对PCSS(百分比接近软阴影)的一种优化方案,通过屏幕空间中根据阴影接收者到遮挡物的距离变化来调整高斯模糊的核大小,以实现软阴影效果。优化利用了高斯模糊的可分离特性,大幅减少了计算复杂度。
1252

被折叠的 条评论
为什么被折叠?



