天天看点

GAMES202-高质量实时渲染笔记01-ShadowMapping

ShadowMapping

一共做两次计算,第一次从灯光出发,记录各点最近深度形成shadowmap。第二次从摄像机出发,利用shadowmap进行阴影判断。但是会出现自遮挡现象,以及走样现象

GAMES202-高质量实时渲染笔记01-ShadowMapping

因为shadowmap有像素分别率,从某个像素看去,覆盖过去的深度,就是一个像素大小常值深度。

橘色值方片,就是一个常值深度,随后后面像素被遮挡。

GAMES202-高质量实时渲染笔记01-ShadowMapping

解决办法:通过夹角判断忽略一小段距离。

GAMES202-高质量实时渲染笔记01-ShadowMapping
GAMES202-高质量实时渲染笔记01-ShadowMapping

secondDepth shadowmapping

还记录次小深度,利用最小和次小深度的中间深度,来做阴影投射。

GAMES202-高质量实时渲染笔记01-ShadowMapping
GAMES202-高质量实时渲染笔记01-ShadowMapping
GAMES202-高质量实时渲染笔记01-ShadowMapping

利用积分拆分不等式,将visibility与shading部分分离。当gx积分域较小,且函数足够光滑时该约等式成立。

对于点光源和面光源都是十分准确的。

Percentage closer soft shadows软阴影

Percentage closer Filtering(PCF) 是为了解决阴影锯齿问题,不是为了做软阴影。是在做阴影判断时进行操作,而不是得到图像后做模糊处理。

具体操作:从该点出发,连向shadowmap,并不是只看shadowmap上一个点的深度值,而是找该点周围一个区域进行判断01,最后加权平均计算深度。

GAMES202-高质量实时渲染笔记01-ShadowMapping

利用硬阴影,做遮挡物距离不同大小的fliter就能得到软硬阴影。

w为软阴影区域,blocker距离为遮挡物距离。

GAMES202-高质量实时渲染笔记01-ShadowMapping

继续阅读