跳转至

DDGI的优点:

基本概念

DDGI Probe

摆放在场景中,记录了某一个位置的三个关于方向的函数:

  1. E(w) :probe从w方向的半球面接收到的irradiance。
  2. r(w) :probe往w方向看到的最近物体与probe距离。(存储半球面上的均值)
  3. 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
  • 动态几何:每帧都发射光线
  • 静态几何