论文部分内容阅读
伴随着计算机图形硬件技术不断地更新换代,各类主流三维游戏对于阴影渲染的实时性与可交互性提出了更高的要求。同时,随着大型复杂光照环境在游戏、电影及动面中的广泛应用,强大高效的真实感阴影渲染成为技术研究的一大热点。本论文工作针对游戏与动面场景绘制中的实时高真实感阴影渲染进行深入的研究。目前,一些衍生自硬阴影渲染算法的软阴影算法,虽然能够达到较好的实时性,但是仅适用于一些局部光源而无法在复杂光照环境下获得具备一定真实感的阴影效果。相对地,一些如光线跟踪之类的全局光照算法,虽然能够保证非常真实的渲染效果,但由于算法复杂计算量较大而只能用于离线渲染。另一种以渲染方程为基础的PRT方法,通过将阴影渲染过程有效分解为预处理与实时渲染两个阶段,既能使阴影渲染在实时条件下进行也能够保证一定真实感效果。本文工作以(基于哈尔小波的)在高频光照环境下应用于动态场景渲染的PRT方法为基础进行展开。在过去的一些动态场景PRT方法中,由于图形硬件本身的限制,只能够在立方体映射空间下对遮挡函数进行采样并计算渲染方程。然而在立方体映射空间中,基于哈尔小波的物体旋转问题较难进行处理。因此,本文选择在球面极坐标系上完成对于各类函数的采样以及渲染方程的计算,并使得物体旋转问题得到有效解决。此外,为了提高真实感阴影在实时状态的渲染效率,我们选择在GPU上来实现渲染方程的计算。本文的工作和主要贡献在于:(1)利用阴影场的形式对遮挡函数进行采样。提出了在球面极坐标系上利用GPU光栅化特性以及Geometry Shader对于遮挡函数进行采样的方法。该方法也能扩展到一些其他的参数坐标系,使得动态场景PRT方法不再局限于立方体映射空间。(2)利用Tree-Structured算法来完成渲染方程的计算。提出了一套对Tree-Structured算法在GPU上进行实现的方案:针对在GPU上实现AugTree数据结构主要受制于寄存器资源瓶颈这一点,提出了能较好地控制寄存器资源消耗的两种实现方式,为该算法实现提供了基础;根据环境光源的独有特点,对算法流程进行调整以减少迭代次数并进行相应优化。此外,我们也根据GPU的特性优化该算法各实现环节。(3)提出了在实时条件下基于哈尔小波在球面极坐标系上解决物体旋转问题的方法,并利用旋转系数矩阵对遮挡函数的系数向量进行线性调整;提出了基于GPU和CPU等两种对于旋转系数矩阵的计算方法,并对旋转系数矩阵的计算过程进行大幅优化。实验结果表明:本文提出的遮挡函数采样方法与阴影测试线方法相比,不仅保证很小的误差,更使得采样效率得到较大提升;对于Tree—Structured算法流程调整后所做出的优化使得渲染效率得到显著提高;在AugTree数据结构实现方式中,渲染效率能够较少地受到寄存器资源瓶颈的制约;而本文提出的对物体旋转问题的解决方案,能够在实时条件下得到误差很小的渲染结果,并能实时地对旋转系数矩阵进行计算。