屏幕空间光子映射与路径复用下的方差减少技术解析
屏幕空间光子映射
在光线传输模拟中,屏幕空间光子映射是一种用于实现实时焦散渲染的有效技术。下面将详细介绍该技术的各个环节。
光子生成与追踪
对于使用投影图 V 创建的光照区域 A 的分辨率,pwph 是传递给如点光源等已调度光线的光线生成着色器的大小。光线生成着色器的每条光线都携带从区域 A 发射的一个光子。由于每个光子对应光照区域的一部分,对于光照区域 al,每个光子的面积为 1/(pwph)。定向光的发射通量为:
[
\varPhi_{e} = D \cdot l_{e} \cdot e_{w} \cdot h_{a} \cdot l_{p} \cdot p
]
需要注意的是,al 是世界空间单位下光照区域 A 的面积。
光子发射后,会在世界中进行光线追踪,直到达到最大光线追踪步数或光子击中的表面为不透明表面。具体流程如下:
1. 光线追踪并击中某个物体后,评估材质信息。
2. 如果光线击中的表面足够不透明,光子将停止,并评估场景深度,以检查该表面是否会在屏幕空间中存储该光子。
3. 如果未击中任何物体,或者光子相对于相机的场景深度超出了深度缓冲区中存储的值,光子将被丢弃。
4. 另一个使光子停止的条件是当光子强度可忽略不计时,即光子在穿过透明物体时衰减。
以下四种情况下光子不会被存储:
1. 光子的强度可忽略不计。
2. 要存储的位置超出屏幕范围。
3. 光子的传播距离超出了存储的深度缓冲区值。
4. 光子是直接光照的一部分。
生成光子的代码位于
超级会员免费看
订阅专栏 解锁全文
35

被折叠的 条评论
为什么被折叠?



