Real-time Global Illumination(in 3D)
全局光照就是直接光照加上间接光照

主要是一次弹射的间接光照

所有被光直接照到的物体都会作为光源再次照亮其他物体,也称为次级光源

要得到p点的光照结果,我们需要知道:
1.哪些东西是次级光源(联想到shadow map)
2.每个次级光源对p点光照的贡献
Reflective Shadow Maps(RSM)
问题1可由shadow map解决,sm上每一个像素都是一个次级光源,由于p点是不确定的所以我们假设:
所有反射物都是diffuse的(这样每个次级光源出射的能量(radiance)就是确定的了)
回顾辐射度量学


角的积分可以转化成面积的积分

对于漫反射面来说

代入后dA可被消除

问题1:次级光源对p点的可见性不可知,所以需要省略,当做可见
问题2:分母应该是2次方
其余小问题:
次级光源对渲染点的可见性不好解决(可用类似于PCSS的方法进行加速)
RSM的好处:
好实现
坏处:
性能和光源数线性相关
次级光照没有可见性检测
有许多的假设
采样数与质量的权衡
Light Propagation Volumes(LPV)
主要目标:
对任意一个渲染点在任意一个方向能够得到radiance
主要想法:
光线沿直线传播且不变
主要解决方法:
把场景分为3D的网格

步骤:
1.得到虚拟光源(RSM)
2.把次级光源注入到3d空间的网格中

3.传播
把每个网格向四周传播,相加并用球谐函数表示,重复传播直到稳定

4.渲染
对每个渲染点,找到所在的网格,根据网格渲染
问题:
light leaking

原因:格子内的光照是一样的,精度会有损失,除非格子划分无限小,并且传播过程也会忽略可见性的判断
Voxel Global Illumination(VXGI)
是一个两趟的算法
与RSM的区别:
1.次级光源从pixel变为voxel
2.RSM中的采样变为3D空间中的锥型tracing
Pass1:
记录每个voxel的光源分布与法线
Pass2:

Real-time Global Illumination(screen space)
什么是屏幕空间:
信息只来自于屏幕上能看到的东西(直接光照的信息)
相当于对图像进行后期处理
Screen Space Ambient Occlusion(SSAO)环境光遮蔽
什么是SSAO:
1.是全局光照的近似
2.在屏幕空间
Key idea1:
1.我们不知道间接光照
2.假设间接光照是常数(phong)
Key idea2&3:
1.要考虑可见性visibility

2.假设是diffuse的
理论:
从渲染方程考虑



分离出可见性项



可理解为取一个平均值
对于AO来说(间接光为常数的情况下)这样拆分是准确的而不是近似

简单的理解:
1.间接光是L常数
2.brdf是常数
3.相当于把前两项取出来

如何取得每个点的平均可见性呢?(在屏幕空间上)


在红点过半的情况下才考虑环境光遮蔽(不知道法线的情况下)

问题:
由于不知道法线会存在不自然的遮蔽
HBAO使用了法线所以可以避免错误遮挡。
本文深入探讨实时全局光照技术,包括Reflective Shadow Maps (RSM)、Light Propagation Volumes (LPV)和Voxel Global Illumination (VXGI),分析它们的工作原理、优缺点以及在3D图形学中的应用。同时,介绍了屏幕空间全局光照和SSAO环境光遮蔽的概念及其关键思想。
676

被折叠的 条评论
为什么被折叠?



