本技术主要针对非常小的场景进行GI的估计,原技术参考simple global illumination;
首先,场景顶点作为GI的采样点,这些顶点都是光照的发射点与接收点;我们使用顶点的颜色来模拟计算每个顶点的Irradiance,初始时所有顶点都为黑色,除了光源的顶点以外;
为了模拟第一次光线透射,我们要计算多少光到达了每一个顶点。本来这个光照过程需要在顶点处,沿法线半球面透射光线进行场景相交计算,我们可以借助GPU来更快速的进行这一过程。我们将相机置于每个顶点,并且沿着法线朝向,相机的FOV给180度,使用32x32的buffer(相当于1024根光线)来存储对应的Radiance,最终沿半球累积下来的颜色即为该顶点接收的irradiance;重复这一过程,我们就能累积计算出,多次弹射得到的GI;
GI结果如下图所示:
该方法并非完全的物理正确,但是是可以做的完全物理正确的,只需要在相机积分irradiance时,考虑到Lambert效应,以及相机的透视问题即可;