第一步,光源发射很小的并带有能量的小包裹
(
我们叫它光子
(photons))
发射到场景中。我们
要追踪这些光子在场景中反弹的路线。其中一些光子会被物体吸收或被反弹到无限远的空间
里。当光子与一个物体相撞,它可以被反射,发射或吸收。当一个光子经过所有漫反射表面
的物体并产生了路线之后,就会被储存到一个可以描述三维空间的数据结构里,这就是光子
图。光子被不断射出直到达到要求数量的光子都储存为止,或者也可以指定一个最多可射出
光子的数量。
第二步,在渲染时物体还是被局限照明照亮,然后我们找到离照明点比较近的光子并以它的
光子图为依据对场景进行补偿以达到间接照明的目地。
这样任务就很清楚地被分来了:直接照明用局部照明实现,而间接照明用
GI
。局部照明只
处理多光源到被照明点为直线的光线
(
可能但阴影削弱
)
,
GI
则处理反射光线。
GI
和
caustic
唯一不同的地方在于
GI
的光子是按漫反射通道(
diffuse path
)反射的,而
caustic
的光子是按镜面反射通道(
specular path
)反射。