1 Shadow Mapping 阴影映射
1.1 概览
1.1.1 Shadow Mapping 是一个 2-Pass Algorithm(需要渲染两趟)
- 第一遍从光源的位置渲染,得到Shadow Map。
- 第二遍从相机的位置渲染场景,结合上一步得到的Shadow Map就可以知道渲染的哪一部分位于阴影之中。
1.1.2 Shadow Mapping is an image-space algorithm 图像空间的算法
- 优点:不需要场景的几何知识
- 缺点:容易发生自遮挡现象和走样现象
Shadow Mapping最开始还是离线渲染的基础。
1.2 Shadow Mapping 实现过程
1.2.1 Render from Light
从光源输出深度图。
1.2.2 Render From Eye
从眼睛渲染图像,判断所在的点是否能被光源照到。
1.3 Shadow Mapping存在的问题
1.3.1 Self occlusion 自遮挡
- 由于是使用像素记录的离散的深度,所以对于上图的地板而言,深度的分布是一段一段的。
- 从camera渲染时,如图中的蓝红交点位置,这个时候,这个点在shadowmap对应的深度与位置橙色相同。导致橙色区域的地板遮住这个交点。
从上向下照,自遮挡问题最小。light与地面越平行,自遮挡问题最严重。
解决自遮挡问题
增加一个bias来减少自遮挡。
但是会让一些本来应该遮挡的物体没有被计算(detached shadow i