目录
前言
当光源被不透明物体遮挡时,就会产生阴影区域
阴影实现的几种方法
- 平面阴影
- 阴影映射
P1
平面阴影
根据光的方向,把物体的每个顶点投影到平面地面上。缺点是只能投影到平面上,且投影物体必须在光线和平面之间,地形相对平坦时可用。
阴影映射
简单说是当视点像素在光源空间下无法看到时,可以认为该像素在阴影区域。
利用渲染像素点在光源空间的深度与深度图进行比较
由于ShadowMap纹理大小会出现抗锯齿
常发生问题
自阴影
离散的采样点以及数值上的偏差造成的自遮挡效果
解决办法:深度偏移
将采样点向物体表面法线进行偏移,但会造成Peter panning(下图红圈)
走样
解决办法
- LiSPSM
- CSM
- 无走样阴影映射
滤波
滤波是为了减少重采样的误差,通过滤波可以减少图像中的部分特征,通过算子对像素周围进行采样计算像素值。可以实现软阴影效果。除PCF外,还可使用PCSS(可设置滤波核)来表现物理的软阴影效果。