Waht?!

I wanna to be a graphics programmer :)

Latest

渲染软阴影的几种方法

渲染软阴影的几种方法

(WIP) 软阴影和硬阴影最大的区别是硬阴影是由点光源(注: 实际上应该是Punctual Light,原谅我不知道咋翻译,点光源是Point Light)照射到遮挡物产生的阴影,该类阴影的最大特征是光源只是一点,也即计算光照时考虑通常不考虑面积。软阴影是是由有形状的(计算光照时考虑面积)灯照射到遮挡物产生的阴影。 在上篇文章提到,软阴影会有模糊的边缘,而硬阴影没有。 为了模拟这种软阴影的边缘模糊效果,有如下几种渲染软阴影的方法: 方法一 使用多个Punctual Light去覆盖Light area来模拟软阴影的效果。最后再取平均值,计算penumbra(半影)部分。 方法一的优点在于计算得到的阴影效果非常精确,缺点在于在性能上对计算硬件是一大挑战。 方法二 此方法类似于MSAA的思想,在光源区域内多重采样(一般来说需要取16次),投射得到16张不同的阴影贴图,在做混合。虽然该方法性能上比起方法一来说要省一些,但开销仍旧不少。 阴影效果方面,由于采样次数足够(16次),因此该方法产生的阴影效果非常逼近与真实的物理阴影效果。 (未完待续)

By Nathanli