论文部分内容阅读
光照技术是得到高质量图形的重要因素之一。在三维室内场景真实感渲染中,光照的效果是必不可少的,光照效果的优劣直接影响到整个虚拟现实系统仿真的程度。因此光照算法的研究是目前计算机图形学研究的热点之一,具有广泛的应用价值。 光照模型的优劣直接影响到整个光照渲染的效果,本文着重研究了辐射度算法这一全局光照模型。辐射度光照算法通过模拟光在两个物体中的传播塑造了环境中光的物理行为,能够产生一些局部光照方法不能模拟的效果,如:阴影和相互反射。辐射度算法应用的关键是面片形状因子的计算,传统辐射度方程求解的复杂度是O(N2),N是整个场景被分割成的面片的数目,这需要很大的计算量和存储空间,对于复杂场景是不允许的。 为了解决这一问题,Cohen等人提出了逐步求精辐射度算法,它可以做到即时地计算形状因子,避免了大量的存储要求,它不断重复着从一个面片“射出”能量传递到场景中其他面片的过程。本文首先对传统逐步求精算法中存在的一些问题进行改进:通过预计算出场景叶节点的PVS(潜在可视集)矩阵,来提高面片可见性判断的效率,加速形状因子的计算;通过让面片的辐射度能量进行过度发射使的其对应的光照贴图被选中一次后就不会被再次选中作为发射面,这样可以加快辐射度方程求解的收敛速度。 但是对于面片数目比较多时,整个计算过程仍然非常耗时,为了从根本上加速辐射度算法的求解和改善光照的效果,本文采用了基于GPU硬件加速来实现逐步求精辐射度光照算法,该方法利用可编程图形处理单元GPU的并行计算能力,将辐射度算法中面片可见性的判断和形状因子的计算完全在可编程图形硬件中完成。在片段着色器程序实现形状因子的计算和每个面片辐射度的求解。通过应用程序创建自己的帧缓冲区对象,利用离屏渲染、纹理缓存等技术来进行渲染和中间结果存储。该方法对于简单场景可以达到交互的速度,对于复杂场景会大大提高其计算速度,改进其光照渲染的效果。 现代GPU技术的发展极大推进了计算机实时渲染技术的应用,目前图形硬件中的图形处理器(GPU)计算能力的增长速度已经超过了中央处理器(CPU)计算能力的增长速度,所以通过在GPU中实现逐步求精算法求解辐射度,即保留了其本身的收敛优势,又充分利用了GPU的数据计算能力,从而可以进一步减少室内场景的渲染时间,而且可以达到引人注目的效果,如模糊阴影和间接光照。