本文仅记述SSDO学习笔记!
概述
SSDO Screen-space Direction Occlusion 是对AO的扩充,在AO的基础上,假设没有遮蔽的方向有直接入射光,有遮蔽的方向,可能有间接光的反射。
SSAO理论分析
AO:在计算点的周围进行采样,如果采样点的深度大于采样点所对应的屏幕空间的深度,则认为是没有光照进入,否则我们则认为有间接光照,这样我们就可以对所有采样方向进行积分,计算这一点的光照。
让我们来看一下如何进行计算的:
一切起源于渲染方程,在渲染方程中我们有三项值得注意,入射光,BRDF以及可见度。
然而在实时渲染中,我们有一个伟大的近似公式:
- 这里需要f(x) 必须要比较光滑。
- 或者average f(x) in the support of G
那么我们可以依据这个公式将可见度分离出来,并进行积分,注意在AO里面是间接光照,并且是个常数。
对cosθidωicos\theta_{i}\mathrm{d}\omega_{i}cosθidωi的积分是什么呢? 对,其实就是算一个投影立体角,即π\piπ。
由此,我们的渲染方程就转变为:
实则,在这里我们就可以看出来,这还是求解渲染方程,那么就可以理解为屏幕空间的光线追踪。
在object space进行光线追踪是非常慢的,并且依赖于屏幕的分辨率以及难以理解和计算麻烦。
在屏幕空间计算则非常简单,不依赖于屏幕分辨率,但不符合物理。
结果呢:
- 产生的结果依赖于采样,因为我们还是在求解积分,采样越多,质量越好。
- 需要采样的位置必须随机,指定半径。
- 噪点,会产生噪声,那么我们还需要后期的降噪过滤。
但总之增加了图像的细节,效果还不错。左边AO,右边 no AO。
感谢闫老师的课程。
那么我们在此基础上来看一看DO吧!
SSDO理论分析
如何重建世界坐标.
一切来源于渲染方程,讨论过AO之后,我们知道了AO假设未被遮挡的方向有间接光照,那么DO则进行大胆假设:
- 未被遮挡的地方有直接光照
- 遮挡住的地方存在间接光照
很重要的一副图,其中CCC点是直接光照,A,B,DA,B,DA,B,D点都表示会有间接光照,B,DB,DB,D点会有间接光照。
直接光照
是不是很眼熟,对,这时对AO方程的离散化形式,并用作直接光照的计算,让我们分析一下:
- PPP就是我们需要计算的着色点
- Lin(ωi)L_{in} (\omega _{i})Lin(ωi)是从ωi\omega_{i}ωi方向来的直接光照
- 由于是屏幕空间所以这里将fr(ωi,ωo,f_{r}(\omega_{i},\omega_{o},fr(ωi,ωo,p)))假设为diffusediffusediffuse的BRDFBRDFBRDF。
- Δω\Delta\omegaΔω 则是均匀采样的立体角 Δω=2π/N\Delta\omega = 2\pi/NΔω=2π/N ,NNN是采样数量 。
因为是离散化形式,那么我们所需的积分变量就不再是单位立体角,而是一个具体的立体角,这里假设我们是均匀采样,并且我们不能在离散的计算机中表达出连续量。
间接光照
我们要知道一点的光照强度来源于直接光照和间接光照。
那么对于被遮挡住的间接光照我们怎么计算呢?
对,一切起源于渲染方程,对于间接光,我们则做了一个更大的假设,假设每一点都是一个VPL(虚拟点光源)。
让我们来分析一下不同:
-
LpixelL_{pixel}Lpixel:来源于采样点所映射到的屏幕点的Radiance,简单来说就是屏幕像素颜色。
-
ρ\rhoρ与直接光相同,是albeoalbeoalbeo。
-
AsA_{s}As 是一块 sender patch,即发送光线的虚拟点所占的面积的投影,投影是因为接收点所接收的能量是从来自发射方的投影,即这是对VPL的修正,因为假设是均匀采样故这时一个常数,即πr2/N\pi r^{2}/Nπr2/N。可以从下图理解一下,即从发射光线的角度去思考。
-
di2d_{i}^{2}di2 的理解从下图理解:即点光源沿着某个方向传播有着r2r^{2}r2的衰减。
-
cosθsicos\theta_{si}cosθsi与cosθricos\theta_{ri}cosθri 则是发送方的法线和接收方的法线与采样方向的coscoscos值,即光线不可能从采样点的背面发送到着色点,也可能与 3. 中的意图一样,即着色点会接收垂直于它的所有光线的能量。
至此SSDO的理论全部结束,通过LdirL_{dir}Ldir可以算出遮蔽光,LindirL_{indir}Lindir则可以增加反射光。
注意点
- 对于这种方法自然是采样越多效果越好,噪点越少,cost越多。
- 对于深度的比较,自然需要bias的修正。
- 对于提升质量或者修正错误有着Depth Peeling方法。即记录多层深度法。
- Additional Cameras增加多个摄像机来渲染深度图,分别进行比较。
结语
SSAO与SSDO都是很不错的方法对于提升画面质量,很值得我们学习!
对那充满不安的日子说再见吧,对那充满不安的日子说再见吧,对那充满不安的日子说再见吧,
向着未知的梦境之地前行,向着未知的梦境之地前行,向着未知的梦境之地前行,
我想总有一日我会变得更加坚强!我想总有一日我会变得更加坚强!我想总有一日我会变得更加坚强!