论文部分内容阅读
现代GPU技术的发展极大的推进了计算机实时渲染技术的应用,其主要的应用包括交互式的3D图形建模程序和虚拟现实系统以及游戏、计算机动画等。而对于显示的图形质量除了对纯三角面片的显示性能要求外,也提出了更高的要求。一些渲染效果如反锯齿,移动模糊和投射阴影等技术在不久的将来也必将越来越常见,并且对系统的要求也会更低。正如可见面判定算法用于判断能够被眼睛看到的表面,阴影算法用于判断光源能看到的表面,那些光源看不到的表面将处于阴影中,而那些能被光源看到的表面将处在阴影之外。物体间相互遮挡形成了阴影,阴影区域的形状大小和物体的形状,相互间位置,光源的位置和形状都有密切的关系。因此,对于一个三维的场景,阴影有很强的立体表现能力。人们通过实验发现阴影对图像质量的提高主要表现在以下几个方面:首先,阴影可以对3D场景中的物体的相对位置提供视觉线索,使得整个场景更易于理解。其次,阴影也直接提高了图像的真实感,并且使得创建复杂的光照效果成为可能。现代图形硬件的不断发展,使得新的阴影生成算法的提出及实现成为了可能,著名的关于阴影生成算法的最为完备的讨论—Woo,1990—也已经在STAR60中得到了更新。本文主要概述了一些实时阴影生成算法,以及我们自己在这方面的一些研究。其它的一些对硬件系统要求相对较高的,可以生成高质量阴影的技术,如基于光线跟踪或全局光照的技术,将不在我们的讨论之列。根据应用的不同,不同算法的重点可以是在保证实时的帧率,或是在生成高质量的阴影以及半阴影效果这两个不同的方面。到目前为止,还没有任何一个算法可以实时的生成动态场景中的阴影,同时还保证计算出的阴影在物理上的正确性。我们的文章对各种算法提供了一个较为全面的概括,讨论了不同算法的优点,局限,质量和复杂度之间的差别。通过对它们的观察,我们也扩展了其中的某一方法,并提出了其在现代的图形硬件上的一个实现过程,包括在一个3D坦克对战游戏bzFlag中用OpenGL进行实现的细节。通过和其它算法进行比较,可以发现我们的算法在实时性和正确性之间作出了较好的平衡,可以应付大多数对实时性要求较高的系统。另外,通过本文提供的对其它实时阴影生成算法的全面分析,程序员们可以得到一个较为全面的参考,并从中选择一个对于当前应用最为适合的算法。