Lec12 Geometry 3 几何3 and shadow mapping
阴影 (Shadow Mapping)
只能处理点光源或者方向光源(硬阴影)
-
图像空间
- 生成阴影的时候不需要知道场景的几何信息
-
如果不在阴影里
- 摄像机可以看到这个点,光影也能看到这个点
- 步骤
-
从光源看向场景,找到一堆能看到的点,记录深度
-
从摄像机看向场景,投影回光源处投影的成像平面上,比较深度,如果一致,就能够被双方看到,证明该点不在阴影当中(就是判断从光源处能不能看到相机看到的这个点,通过深度判断)
-
如果深度不一致,那么光源肯定看不到这个点,他在阴影中(红色线深度与光源之前投影的深度不一致)
-
可能实际计算会有精度差,会有数值精度问题(如图中向光面脏脏的黑点)
-
解决方法
- 判断深度不判断相等,只判断大小
- 引入bias,大于一定偏差
- shadow map得有分辨率,如果比渲染场景分辨率小的话也有误差
- 开销更大(渲染了两遍场景)
-
-
硬阴影与软阴影
-
能看到全光源,就是不在阴影里
-
能看到半光源,就是软阴影
-
完全看不到光源,就是硬阴影
-
如果有软阴影,一定是光源有一定大小
-