论文部分内容阅读
作为严格基于物理模型的渲染方法(PhysicalBasedRendering),目前已有的多种全局照明(GlobalIllumination)算法可以大大提高三维渲染图像的真实感,并且已经广泛应用于照明工程领域。但是,由于全局照明需要大量的计算量,因此这些算法一般被局限于非实时的照明计算和输出静态图像上。在一些需要实时渲染的应用中(如虚拟场景的浏览)为了达到逼真的照明效果,通常使用全局照明的静态输出作为背景场景。这种做法可以在一定程度上提高实时渲染的准确性和可视效果,但是由于使用大量无法变更的预渲染(pre-rendered)的物体,却带来了缺乏良好交互性的缺点。另一方面,近年来的一些照明算法可以在接近实时的速度下处理一些由复杂光源引起的直接照明,有效地提高了照明计算的准确性,但是仍然缺乏对间接照明的实时处理。
本文提出一种新的基于体渲染(VolumeRendering)的快速全局照明方法。该方法利用一些已有的全局照明算法对场景中的相关光源和物体进行预处理,计算出给定空间中一些相关参数的空间分布,并将计算结果保存到体数据(volumetricdata)中。在实时渲染时,通过对给定位置处的相应体数据进行简单重构和插值,就可以得到该位置处的辐照度值。由于重构和插值运算的计算量都比较小,因此可以获得较高的性能。另一方面,这些体数据是相互独立的,每一个物体的体数据只依赖于该物体本身。这样预处理就是一次性的,其输出的数据可以重复使用。
为处理直接照明和间接照明,将上述体数据分为两种:对应于直接照明的数据称为辐照度分布体(IrradianceDistributionVolume),用于记录光源在特定空间内产生的辐照度(irradiance);对应于间接照明的数据则称为核分布体(KernelDistributionVolume),用于记录场景中物体间的相互反射(inter-reflection)数据。