全局光照的复杂性¶
- 直射光(好做)
- 间接光(主要目的)
- 间接阴影
- 光滑(高光)反射
- 焦散线
- 次表面散射
次级光源概念(源自光线追踪)¶
任何被光源照到的物体表面,会再次作为光源照亮其他地方
关键问题¶
用间接光照照明点p需要什么。 1. 哪些表面是直接照明的? 2. 每个表面patch对p的共享是多少呢?
反射阴影贴图:RSM¶
问题一:哪些surface patch被直接照亮¶
- 可以用最经典的Shadow Map
- 阴影贴图shadowmap上的每个像素都是一个小的==surface patch==
假设¶
每个像素的精确像素亮度是已知的 所以可作出假设: - 任何反射都是漫反射 - 因此,射出光线在所有方向上都是平等的
光线概念区分¶
- 辐照度:由一个光源发出的光
- Irradiance:所有光线汇聚在一个表面上的光
- Radiance:单光线
问题二:每个surface patch对p的贡献是多少¶
- 对pathch表面所在==立体角的积分==
- 可以转换为patch在弧面上的积分 ![[Pasted image 20250304095256.png]]
入射光亮或能量Incident flux or energy¶
可以实现把dA消去的结果 ![[Pasted image 20250304104355.png]]
一些问题¶
不是所有的像素都需要RSM贡献光照 - 可见性(依旧比较难处理):有些像素点明显不会发出光照,那就不需要RSM - 方向: - 距离:距离光源太远,贡献太少 ![[Pasted image 20250304104659.png]]
加速¶
理论上,所有shadowmap上的pixels都可以贡献给p - 我们可以减少这个数量吗?(512平方次,1024平方次......相当恐怖) - 我们可以使用==PCSS的第1到3步==
可以减少到只有几百个像素点
存储¶
RSM本质上就是Shadow Map。 RSM上需要存储什么呢? - 深度 - 世界坐标 - 法线 - flux
适用场景¶
手电筒:因为覆盖范围相对较小,不需要太大的RSM 《神秘海域4》、《美国末日》 ![[Pasted image 20250304105858.png]]
优点:容易实现¶
缺点¶
- 性能消耗随光源线性增长:不适配多光源,因为和ShadowMap息息相关
- 缺乏visibility检查:没有反射物到shadidngpoint的visibility
- 许多假设:漫反射器,深度作为距离等等。不是很标准