局部照明
局部照明算法只描述单独的曲面如何反射或透射灯光。 倘若到达曲面灯光的描述,这些 3ds max 中称作明暗器的数学算法预测离开曲面的灯光的强度、颜色和分布。与材质描述相结合,不同的明暗器可以确定曲面是具有塑料外观还是金属外观,或它是平滑的还是粗糙的。 3ds max 为定义大量的不同曲面材质提供稳健的接口。
在定义单独的曲面如何与局部级的灯光相交互后,下一个任务就是确定灯光在何处到达曲面源。 使用 3ds max 的扫描线渲染系统,在着色中只考虑直接来自于光源的灯光。
但是,为了获得更精确的图像,不仅需要考虑光源,同时也需要考虑环境中的所有曲面和对象与灯光如何相互影响,这一点非常重要。例如,某些曲面阻挡灯光,并在其他曲面上投射阴影;某些曲面很有光泽,我们在它们上会看到其他曲面的反射;某些曲面透明,我们会透过它们看到其他曲面;而且有些曲面会将灯光反射到其他曲面上。
全局照明
考虑模型中曲面间传输灯光方式的渲染算法称作全局照明。 3ds max 提供两种全局照明算法作为其产品级渲染系统的构成部分:光线跟踪和光能传递。
在解释光线跟踪和光能传递如何工作之前,了解灯光在物理世界中如何分布非常有用。例如,考虑如下所示的房间。

由两个灯光照明的厨房
上面的厨房拥有两个光源。灯光的一种理论将灯光看作称为光子的离散粒子,光子从光源发出直到遇到厨房中的某一曲面。根据曲面的材质,一些光子被吸收而另一些散射回环境中。以特定波长运动的光子被吸收,而其他的则不会被吸收,这一事实决定了曲面的颜色。
非常光滑的曲面在一个方向反射光子,并以与光子到达曲面的入射角相同的角度反射。这些曲面称作镜曲面,而这种反射称作镜面反射。镜子是一种完美的镜曲面。当然,许多材质在一定程度上同时显示镜面反射和漫反射。

左:镜面反射
右:漫反射
光子从曲面上反射的方式主要取决于曲面的光滑度。粗糙的曲面会向所有方向反射光子。这些曲面就是漫反射曲面,而这一类反射被称作漫反射(如上所示)。用平光漆绘制的墙面就是漫反射表面的一个很好例子。
厨房的最终照明由曲面间的相互作用和光源发出的数以亿计的光子共同决定。在曲面上任何给定点处,光子可能直接从光源到达(直接照明),或者通过在其他曲面上一次或多次反弹而间接到达(间接照明)。如果您站在厨房中,那么房间中少量的光子会进入眼睛并刺激视网膜的杆状和锥状细胞。从效果上来说,这样的刺激会形成大脑所接收的图像。
在计算机图形中,我们将视网膜的杆状和锥状细胞用计算机屏幕的像素来代替。全局照明算法的一个目的是尽可能精确的重新创建在真实环境中所看到的景象。第二个目的是尽可能快地完成任务,理想情况是能够实时(每秒 30 个图像)。到目前为止,还没有某种单独的全局照明算法能够同时实现这两个目标。
光线跟踪
全局照明算法首先开发的一项技术称作光线跟踪。光线跟踪算法在场景中运动的数以亿计的光子中进行识别,我们主要关心的是进入眼睛的那些光子。该算法跟踪从屏幕中每个像素进入 3D 模型的反向光线。这样,我们只计算构建图像所需要的信息。要使用光线跟踪创建图像,对于计算机屏幕上的每个像素执行下列步骤。
光线是通过眼睛的位置反向跟踪的,通过监视器上的像素,直到它与一个曲面相交。我们从材质的描述中可以知道曲面的反射率,但我们仍然不知道到达曲面的灯光量。
要确定总体照明,我们从相交点开始跟踪光线到环境中的每个光源(阴影光线)。如果到达光源的光线未被其他对象阻挡,则来自光源的灯光用于计算曲面颜色。
如果相交的曲面有光泽的或透明,则我们必须要确定在要处理的曲面中或通过这一曲面能看到什么。第 1 步和第 2 步在反射(在透明的情况下,则是透射)方向反复执行,直到遇到另一曲面。后续相交点的颜色也用于计算原始点的颜色。
如果第二个曲面也是反光的或透明的,则重复光线跟踪过程,以此类推,直到达到迭代的最大次数或没有更多的相交曲面为止。

光线跟踪:光线通过一个像素从摄影机开始跟踪,经过几何体,然后回到光源。