在3D电脑图形中,全球照明(Global Illumination, GI)是指一系列用来增加3D场景中真实感的算法。这些算法不仅考虑来自光源的直射光(直接照明),还考虑光线被场景中其他表面反射的情况(间接照明)。理论上,反射、折射和阴影等效果都属于全球照明的范畴,因为它们涉及到物体之间的相互影响,而非仅仅依赖于直接光源的照明。
由全球照明算法渲染的图像往往比仅使用直接照明算法的图像看起来更具真实感。
全球照明算法的应用使得3D场景的灯光效果更加丰富,然而这些图像在计算上通常比较耗费资源,因此生成的速度会较慢。举例来说,常见的一种方法是计算场景的全球照明,并将其信息与几何结构一起存储(如辐射度算法)。这种存储的数据可以用于从不同视点生成图像,从而在执行场景漫游时避免重复进行耗时的灯光计算。
辐射度、光线追踪、光束追踪、锥形追踪、路径追踪、体积路径追踪、Metropolis光传输、环境遮蔽、光子映射和签名距离场等都是用于全球照明的算法示例。
这些算法模拟了散射间接反射,这是全球照明的一个重要组成部分;然而大多数算法(除辐射度外)也模拟了镜面反射,这使它们能更准确地解决灯光方程,从而提供更加真实的照明效果。用于计算场景中光能分布的算法与工程设计中的热传递模拟使用有限元方法密切相关。
在实时3D图形中,准确计算全球照明仍然是一项艰巨的挑战。为了适应实时运算的需求,全球照明的散射间接反射组件通常会用一个“环境”项来近似,也称为“环境照明”或“环境颜色”。虽然这种近似方法(也被称为“作弊”,因为它并非真正的全球照明方法)在计算上比较简单,但单独使用时往往无法提供足够真实的效果。
环境照明被认为会“压平”3D场景中的阴影,使整体视觉效果显得平淡无味。
然而,正确地使用环境照明可以成为补偿计算能力不足的一种高效方式。例如,许多专业的3D程序中使用的算法不断进步,以有效地模拟全球照明。这些算法是对渲染方程的数值近似。众所周知的计算全球照明的算法包括路径追踪、光子映射和辐射度。
另一种模拟真实全球照明的方法是使用高动态范围影像(HDRIs),也称为环境图,这些图像可以环绕和照亮场景。这一过程被称为影像基照明。
影像基照明利用环境中的光线信息,能够显著改善3D场景的真实感。
随着科技的进步,越来越多的算法和技术被开发出来,以便在保持计算速度的同时,提高全球照明的效果。这些方法的发展对于虚拟实境、游戏设计及动画制作等领域的影响深远,未来或许能为创造更具沉浸感的体验铺平道路。
全球照明不仅能优化视觉效果,也能让观众与作品之间产生更深的联系。随着这些技术的不断进步,我们是否可以期待一个完全真实的虚拟世界的到来呢?