DDGI的优点:¶
基本概念¶
DDGI Probe¶
摆放在场景中,记录了某一个位置的三个关于方向的函数:
- E(w) :probe从w方向的半球面接收到的irradiance。
- r(w) :probe往w方向看到的最近物体与probe距离。(存储半球面上的均值)
- r2(w) :probe往w方向看到的最近物体与probe距离平方。(存储半球面上的均值)
probe理解成一个球面广角摄像机,那么r(w)和r2(w)就可以分别看作是这个摄像机看到的深度和深度平方的加权平均。
,如果你曾经有了解过VSM算法,或许会对这个做法感到熟悉,VSM中我们使用深度和平方深度的均值来进行切比雪夫测试,从而估计物体处在阴影处的概率。
这里我们来算被遮挡的概率,降低那些可能被遮挡的probe的权重来减少漏光与漏阴影。
DDGI Volume¶
七种纹理采样2D--纹理集Array¶
1. Probe八面体映射¶
为了保证双线性插值正确,需要设置边界 - 边界的边,原边界倒过来复制一遍填充、 - 外边界的四个角,使用原边界的对角的像素颜色。
纹理采样¶
y轴为宽,x轴* y轴 为长度 ![[Pasted image 20250417131723.png]]
2.Radiance(Ray-buffer)¶
存储Position,Normal,albedo ![[Pasted image 20250417140951.png]]
3. 探针偏移缓存¶
辐照度更新¶
1.系数更新¶
- 三线性插值系数:(probe离着色较远,降低权重)
- 方向系数:着色点到probe方向和表面法线夹角过大
- 切比雪夫测试: 拿radiance贴图去更新irradiance。
2.时间超采样(与前一帧结果混合)¶
细节¶
1. 阴影自遮挡¶
bias偏移
2. 探针重定位¶
方法很多,
3. 探针状态机(七种)¶
- 新probe
- 物体内部:永远关闭
- 空旷地区:sleep
- 动态几何:每帧都发射光线
- 静态几何