● 摘要
在现实世界中,遮挡现象普遍存在。物体对光源的遮挡会产生阴影,有利于人们判断场景中物体在空间中的相对位置关系。在计算机图形学中,光源遮挡现象的模拟称为光照可见性判断,对于场景真实感和沉浸感至关重要。
计算机图形学中最为经典的是点光源光照可见性计算,对于复杂光源场景光照可见性计算未给出高效的处理方法。复杂光源场景包括面光源场景、大量点光源场景等。本文针对这一问题,采用对面光源进行点采样的方法,将面光源可见性判断问题分解为共面多点光源可见性判断,并对计算过程进行效率优化;在此基础上,消除共面前提,将方法扩展到三维空间任意分布的大量点光源可见性确定方法上。具体研究内容包括以下三个方面:
(1)给出并实现一种面光源像素级精确光照可见性判断方法,用于生成高质量软阴影,并具有一定的通用性。像素精确的含义是可以判断每个像素点与每个构成面光源的点光源之间的可见性;通用的含义是该方法对任何以三角面片建模的场景均适用。对于输出图像的每个采样点,构建朝向面光源的斜相机,通过将三角面片光栅化到可见性掩码表的方式计算像素采样点的光照可见性。
(2)提出并实现一种面光源光照可见性判断的效率优化方法,使光照可见性的判断达到高效性,在中等输出分辨率下满足交互式绘制的需求。利用像素采样点与三角面片在空间中的关系,使用网格结构建立像素采样点到三角面片的映射。该网格结构是动态构建的,因此全面支持具有变形物体及大小、位置、朝向动态变化面光源的动态场景。
(3)给出并实现一种分散多点光源光照可见性判断方法。对基于阴影图算法的传统实现流程改进并引入场景预采样,降低显示存储开销,提升光照可见性的判断效率。该方法对场景没有引入近似,在准确度和效率上有均衡的表现。