论文部分内容阅读
本文研究了可变材质的交互级全局光照明绘制算法。可变材质指用户可以通过交互改变绘制场景中物体的材质。固定材质的实时全局光照明绘制可以采用预计算辐射传输(PRT)的方法来实现。然而,可变材质的交互级全局光照明绘制却是近年来刚刚涉及的课题。在本文中提出的可变材质交互级全局光照明绘制算法,能在用户改变物体材质的同时,交互级绘制全局光照明效果。本文提出的绘制算法针对两种绘制场景:第一种,物体几何不变,采用双向反射分布函数(BRDFs)来表示物体的反射材质,不包含散射、折射和透射等其它材质类型。第二种,物体几何可以被用户改变,并且只采用折射和散射这两种材质。针对第一种绘制场景,我们算法中的主要创新点,是根据不同的传播光路将辐射传输进行分离。用于固定材质的PRT方法,根据绘制效果和光照的线性关系实现了动态光照下的绘制效果的实时更新。但是绘制效果和材质之间不存在这样的线性关系,所以PRT不能支持可变材质的交互级全局光照明绘制。虽然最终到达视点的总的辐射亮度和材质不存在线性关系,但是每一条传播路径的辐射传输和经过的反射物体的材质的乘积成正比。所以,采用我们的方法将辐射传输根据不同的传播光路分离为多个部分,就能够将这个非线性的问题转化为一系列线性问题的加和。我们需要对每一部分的辐射传输分别进行预计算,而不是像PRT中将所有光路的辐射传输一起进行预计算,从而就第一次实现了基于像素的可变材质的实时全局光照明绘制。我们的算法不但支持空间静态可变材质的实时全局光照明绘制,而且支持空间动态可变材质的交互级全局光照明绘制。也就是说,用户不但可以对一个物体的材质作整体修改,而且还可以对一个物体不同部分的材质作不同的修改。我们还提出了基于顶点的空间静态可变材质的交互级全局光照明绘制算法。该算法第一次允许用户同时改变材质、环境光照和视点,并且在环境光照不变的时候达到实时的绘制性能。算法主要包含三个创新点:光路切分,预计算传输张量,针对BRDF的镜面项分离和张量分解。通过光路切分,我们有效减小了辐射传输的数据量。预计算传输张量用于辐射传输的表示、预计算、存储和绘制。针对BRDF的镜面项分离和张量分解实现了在动态局部入射辐射亮度、可变材质、动态视点条件下的物体表面的快速着色。针对第二种绘制场景,我们最主要的贡献是提出了一个完整的绘制算法流水线,第一次实现了可变折射和散射材质的交互级全局光照明绘制。目前大多数的相关的绘制算法都是离线算法,而实时和交互级的绘制算法,都不能兼顾折射和散射这两种材质所涉及的所有绘制效果。我们的绘制算法流水线的输入是场景中的物体几何、材质、光照条件和视点等参数,所以,用户可以在绘制过程中任意地交互修改这些参数。整个绘制算法流水线运行在图形处理单元(GPU)上,并且能够达到交互级的绘制性能。在我们的绘制算法流水线中,有两个环节非常重要,也是我们算法中最主要的两个创新点:几何物体的快速体素化和自适应的非线性光子贴图算法。前者能够允许用户交互改变物体的几何;后者是达到交互级的绘制性能的保证。本文中的绘制算法有很广泛的应用前景,比如游戏、辅助设计等。其中针对可变折射和散射材质的绘制算法流水线,还是几何变形、交互级几何建模或者进行流体的物理仿真时的交互级可视化算法。