Games202(5·第9章,实时GI总结)
第9章
SSDO屏幕空间方向遮蔽
DO是对AO的升级,它考虑了间接光照的颜色信息
是否光照计算:未被遮挡,就会对p提供间接光照
渲染:采用RSM中VPL的信息对p点着色,着色公式和RSM的公式一样
问题
2·存在丢失信息问题:比如墙面侧对着我们,墙面正面为黄色,应该对附近地面产生影响,但由于判断问题,采样点均未通过深度比较,因此丢失了光照信息
SSR屏幕空间 反射/光线追踪
它和光线追踪的思想比较像,在延迟渲染的几何阶段后,我们知道p点(某片元)信息,包括法线方向,我们也知道向此片元方向投射即入射方向,那么可以求出反射方向
利用raymatching找到反射光和3D场景的交点,但这里不必在3D场景计算(利用sdf),而是依据外壳信息(深度信息),在屏幕空间找到3D空间对应的交点,利用此交点(像素)数据,去计算对p点的间接光照贡献
固定步长
以固定步长前进,每次比较和壳的深度差异,如果>壳停止步进,否则继续步进
精度取决于步长大小,步长越小越精准,同时计算量也越大,为了解决步长问题,引入了动态计算步长的方法
动态步长
为场景的深度图,生成mipmap,但它的像素并非存储上层的四个像素平均值,而是最小值,
它的思想和空间加速结构一样,本质上都是快速跳过不相交的空间,如果和上层节点不相交,那么也不会和子节点相交
一维情况:
没有交点(ray深度值>像素深度值),level++,光线前进当前level的像素大小的长度
有交点,level–
如果levelmax上没有交点,level不继续增加
如果ray超过了屏幕范围,则步进结束
如果level0上有交点,则步进结束
问题
和其他屏幕空间实现GI一样,它也会出现信息丢失问题
IBL . PRT . RSM . LPV . VXGI . SSAO . SSDO . SSR
IBL:
- 思想:预计算辐照度图,F项,运行时采样纹理获取值,求乘积
- 复杂度:空间中等,预计算时间低,运行时间低
- 场景:动态场景(通过将采样方向旋转,模拟环境光的旋转)
- 阴影:不支持
- 渲染质量:较高
- 适用场景:实时渲染
PRT:
- 思想:将渲染方程乘积积分形式,利用sh等基函数,转换为各项近似函数,利用标准正交性,在运行时只需对各个近似函数对应项系数点乘,换取运行时渲染方程光照计算效率
- 复杂度:高昂的存储,高昂预计算时间,运行时间低
- 场景:静态场景
- 阴影:支持
- 渲染质量:最高
- 适用场景:离线渲染
RSM:
- 思想:每个光源渲染一张shadow map,像素作为VPL次级光源,对p点的间接光照计算时,将p投影到shadow map上,利用加权采样计算VPL对p的贡献值
- 复杂度:空间中等,时间中等
- 场景:动态场景(shadow map要每帧重新生成)
- 阴影:不支持
- 渲染质量:质量较低,且充满噪点
- 适用场景:很少使用
LPV:
- 思想:划分3D空间结构,生成VPL,VPL注入到网格用sh表示,radiance在voxel传播,找到p对应的voxel中的radiance对p渲染
- 复杂度:较高的空间,时间中等
- 场景:静态场景
- 阴影:不支持
- 渲染质量:质量中等
- 适用场景:大型场景
VXGI
- 思想:划分3D空间结构,生成VPL,VPL注入到网格根据材质信息准确求出反射方向,从camera发射ray,根据锥形范围层级查询,所有相交的voxel计算对p的贡献
- 复杂度:极高的存储,时间高
- 场景:静态场景
- 阴影:不支持
- 渲染质量:质量极高
- 适用场景:高端游戏和离线渲染
SSAO
- 思想:根据法向半球采样,计算遮蔽值,光照值*遮蔽值
- 复杂度:空间低,时间低
- 场景:静态场景
- 阴影:支持
- 渲染质量:不提供颜色值,只提供遮蔽值
- 适用场景:实时渲染
SSDO
- 思想:根据法向半球采样,计算是否被遮蔽,如果被遮蔽计算间接光照贡献值, 直接光照值 + 间接光照值
- 复杂度:空间低,时间中等
- 场景:静态场景
- 阴影:支持
- 渲染质量:间接光和遮蔽值
- 适用场景:
SSR
- 思想:对于每个p点发射数道光线,利用屏幕raymatching找到与”壳“的交点,颜色值加权作为p点间接光照的一部分
- 复杂度:空间低,时间中等
- 场景:静态场景
- 阴影:不支持
- 渲染质量:光滑表面反射
- 适用场景:高光反射
本文由作者按照 CC BY 4.0 进行授权

