论文部分内容阅读
用计算机生成真实感图形是计算机图形学的重要课题之一,它的主要工作是在计算机图形显示设备上用具有立体感的二维图形来尽可能逼真的模拟我们所观察到的现实世界中的场景。具体地说,就是准确模拟现实世界中场景在受到光照时的效果。随着计算机图形学理论的发展,这一领域取得了许多成果,曲面造型、光照模型、消隐技术等已经有了很大发展,生成的图形的质量、逼真程度也越来越高。本文对传统的基于多边形网格的真实感图形生成过程进行了深入的研究,分析了其中的缺点与不足,并在此基础上提出了基于离散点造型和基于离散点绘制的新方法。与传统方法相比,该方法思想新颖,数据结构简单,造型手续简化。本文所做的工作包括:取景变换、光照、基于多边形网格的造型和绘制、基于离散点的造型、可见性和图像重构、光线跟踪等,在许多不同的场景中都取得良好的效果。重点实现的部分有造型、可见性和图像重构,本文做了大量的工作,提出了新的算法,并且在实践中得到了验证。本文首先讨论了真实感图形绘制过程中的取景变换和光照模型。在取景变换部分,本文定义了一个类,这个类实现了确定视点位置、视点坐标、屏幕到视点的距离、从世界坐标到观察坐标的转换、从观察坐标到屏幕的投影等功能。在本文其它地方可以直接利用这个类来实现坐标转换和投影变换。在光照部分,本文采用了Phong光照模型,光源被假定为点光源,反射作用被细分为镜面反射和漫反射。这种光照模型只考虑物体对直接光照的反射作用,而物体间的光反射作用,用环境光来表示。我们在程序的Ctools类中通过Lighting方法实现,根据Phong光照模型计算点的绘制颜色。在计算景物颜色时使用了RGB色彩模型,假定光源入射光由红、绿、蓝三种波长的光组成,分别确定物体表面材料对这三种光的反射系数及镜面高光指数,然后按红、绿、蓝三分量分别计算即可。 <WP=56>在基于多边形网格的造型和绘制部分,本文研究了基于这种造型的真实感图形的生成过程。首先存储对物体表面进行多边形剖分后的多边形网格表示,然后计算每一个多边形小平面的法向量,再利用一定的光照模型来计算各个多边形小平面的光照效果,最后将各个多边形小平面绘制出来,以此来模拟景物表面的光照效果。为了得到高质量的绘制效果,本文进一步探讨了基于多边形网格的细分方法,实现了基于三角形控制网格1-4分裂的Loop细分模式和基于四边形控制网格1-4分裂的Catmull-Clark细分模式。基于多边形网格造型的方法存在着一些问题,比如:图形生成的效率低;对图形进行调整和局部修改比较困难;计算量大而且复杂;多边形不能非常准确的模拟景物表面;多边形形状各不相同,很难统一处理。因此,在对基于多边形网格的造型和绘制深入研究之后,本文提出了基于离散点的造型。基于离散点造型的基本思想是任何曲面都由离散的点构成,在整个图形绘制过程中,只有点的概念,而没有面的概念。这种算法在最初只记录一些离散的采样点,每个点都有一定的信息,如颜色、坐标、法向量等。我们在程序中定义了表示一个离散点的类CMypoint,它的每个成员变量都代表了点的一个属性,其中包括该点在世界坐标中的位置、近似法向量、该点属于哪个物体、该点颜色和深度信息等。在基于离散点的绘制部分,本文研究了基于离散点的消隐和图像重构。基于离散点的绘制的目的是要在屏幕上得到离散采样点所表示的光滑的没有空隙的图形。只是简单的将所有采样点经过取景变换和光照计算绘制到对应的屏幕象素位置是不够的,我们只能绘制那些在观察方向上可见的点。基于离散点的消隐就是要求出在观察方向上哪些点是可见的,哪些点是不可见的。而且在绘制过程中存在着这样两种情况:屏幕上有些象素没有对应的世界坐标中的离散点,这将在屏幕上留下空隙;屏幕上还有一些象素将对应物体的背面的不可见点,即没有物体可见面的离散点同该象素位置对应,也就是说,如果没有物体前面的可见点遮挡,屏幕上将显示出物体背面的不可见点。为了最终在屏幕上得到光滑的没有空隙的图形,需要采取一定的算法重构图像,我们提出了一些图像重构算法并在实践中进行了验证。 <WP=57>光线跟踪仍然是获得具有正确的反射、折射和阴影等效果的更加真实的图像的一个有效方法。我们研究了基于离散点的光线跟踪方法,探讨了只有物体的离散采样点集合而没有点之间的连接信息的情况下,如何进行光线与物体求交的具体过程。当然,本文还存在一些缺点和不足,例如存储量较大;所取的场景比较简单,纹理映射等。这些都需要在以后的工作中不断得到完善。