实时全局光照(屏幕空间):SSAO,HBAO,SSDO,SSR
那刹芳香
编辑于 2022年02月11日 11:26
收录于文集
共6篇

屏幕空间:

指的就是已经把场景渲染完成了,还有一层颜色,深度,法线等信息的贴图

SSAO

为什么需要AO:和阴影一样,为了增加真实感

SSAO就是在屏幕空间近似环境光遮蔽

由于不知道入射光信息,所以我们假设各个方向都有

并且假设材质是diffuse的

从图片上看就是这样来解释:如果周围被遮住得多就更黑(符合直观感受

理论上:

把 cosθdw当成 dx 变换到下式,现在蓝色的就是我们要估计的,而黄色的是常数与AO无关

更深的理解

投影单位半球到单位圆上

如何实时计算Ka

球内采样测试深度,如果一半以上没通过则开启AO根据通过与失败的比例估计Ka值

缺陷,单层信息带来,会被前方的物体遮住(即使采样点距离深度值很远)

例子

一半的采样都是没用的!

HBAO:需要法线信息,采样更自由,可以加权采样

SSDO

AO和DO完全相反的假设

AO:假设接受四面八方的间接光,因此假设接受红色部分的间接光

DO:红色部分是直接光,不考虑,间接光是被挡住部分也就是黄色部分

做法就是采样半球投影到shadow map深度位置,用patch算间接光(可以从图中看出有一些错误)

评价:已经不错了,但是有一些问题,最大的问题就是信息不够,只有一层壳的信息

SSR

效果:方便做镜面反射也就是glossy材质

对地面采用ssr

SSR采用类似光追的办法就是ray marching,需要深度贴图mipmap加速

问题:背面信息缺失

问题:获取不到超出屏幕范围信息(可以边缘模糊fading

SSR优势,可以做到很多效果