文档详情

第4章-图形处理技术基础.ppt

发布:2015-07-24约1.05万字共62页下载文档
文本预览下载声明
图形的光照处理基本原理   采用消隐技术消除了隐藏线和隐藏面后,图形就没有了二义性问题,但仅仅这样还不够,还要考虑创造所谓真实感图形。光照处理是绘制真实感图形所需的重要技术之一,它模拟光线照射在物体上,物体反映出来的感观效应,通过必要的算法,实现实际物体在计算机上的虚拟。 ?? 从物体表面反射或折射出来的光的强度取决于很多因素: ?? 首先是光源的性质,包括点光源、多点光源或分布光源、光的波长、光源的位置等。 ?? 其次是物体的表面性质,包括物体表面形状、表面性质(反射率、折射率、光滑度等)以及一些表面细节(颜色、纹理等)。 ?? 最后是物体周围的环境、视点位置以及不同人对光的感觉差异等也会对光强产生影响。它们通过对光的反射和折射形成环境光,在物体表面上产生一定的照度。它们还会在物体上形成阴影。 ?? 为了使显示的图形更加逼真,要考虑到物体表面由于光照而产生的明暗变化,这需要对物体进行光照处理。 射线交点数算法如图4.9a所示,点A、点j和多边形分别为参与测试的点和多边形。为了判别测试点是否为多边形所包含,由测试点A或员向多边形外引出判别辅助射线,以射线与多边形棱边的交点数来确定测试点是否包含在多边形中。显然,交点数为奇数时,测试点在多边形内部,即为多边形所包含(如点A):若交点数为偶数时,则说明测试点在多边形之外,即不被多边形包含(tn点B)。如果多边形的一条地位于射线上或射线过多边形的顶点,对于这种奇异情况,需要进行特殊的处理,以保证结论的一致性。如果射线通过多边形的顶点。且形成该顶点的两条边在射线两侧,记为相交一次(如点D):如果形成该顶点的两条边在射线的同侧,记为相交两次或零次(如点E),从而判定被测点是在多边形内还是在多边形外,当然在遇到达些奇异情况时,也可通过改变射线方向,避免奇异情况的出现。如果多边形的一条边位于射线上,则必须通过改变射线的方向重新引出射线,按上述方法重新判断。 正平行投影(三视图)   投影方向垂直于投影平面时称为正平行投影,我们通常说的三视图(主视图、俯视图、左视图)均属正平行投影。 投影过程请观看下面动画: ?? ??????????????????? 三面视图的变换矩阵为: ?? 主视图变换矩阵? (取XOY平面上的投影为主视图,只须将立体图的Z坐标变为零) 俯视图变换矩阵 其中d值是为了使俯视图与主视图间保持一定距离。 左视图变换矩阵 其中d值是为了使左视图与主视图间保持一定距离。 4.2 图形的消隐技术 消隐的概念与作用 在使用显示设备描绘物体的图形时,必须把三维信息经过某种投影变换,在二维的显示表面上绘制出来。例如,轴测图和透视图,就是通过轴测变换或透视变换,求出所有顶点的投影点,再把各点连结起来。下图中第一个图形代表的是后边哪一个呢? 由于投影变换失去了深度信息,往往导致图形的二义性。要消除二义性,就必须在绘制时消除实际不可见的线和面,习惯上称作消除隐藏线和隐藏面,或简称为消隐。 消隐算法的测试方法  ? 针对不同的显示对象和显示要求,会有不同消隐算法与之相适应。 1、重叠测试   许多物体的投影是由若干个多边形构成的,将这些多边形两两判别,看它们是否有重叠部分,如果不重叠,说明它们肯定不互相遮挡。这种方法就叫重叠测试。 2、包含性测试   测试点与多边形的包含关系有两种方法: ??? (1)射线交点数算法 ?? ??? (2)夹角求和算法 当 时,则被测试点在多边形内部(如点A) 当 时,则被测试点在多边形的外部(如点B) 3、深度测试   深度测试是用来测试一个物体遮挡另一个物体的基本方法。常用的有优先级测试和物体空间测试。 优先级测试 4、可见性测试   可见性测试主要用来判别物体自身各部分哪些部分没有被其自身其它部分遮挡即可见的,哪些部分被其自身其它部分遮挡即不可见的。 其中,N为外法矢,S为视线矢量 则该表面可见 常用消隐算法   根据消隐对象不同,消隐算法可分为两类:   若消除的是物体上不可见的线段,称为线消隐;若消除的是物体上不可见的面,称为面消隐。   根据消隐空间的不同,消隐算法又可分为两类: 物体空间的消隐算法   这类算法是将物体表面上的k个多边形中的每一面与其余的k-1个面进行比较,精确地求出物体上每条棱边或每个面的遮挡关系。 图形空间的消隐算法   在消隐算法中,图像空间就是上述的屏幕坐标空间。这类算法对屏幕的每一像素进行判断,以决定物体上哪个多边形在该像素点上是可见的。若屏幕上有m*n个像素点,物体表面上有k个多边形,则该类消隐算法的计算量将正比于m*n*k。    消隐的基本思想很简单,
显示全部
相似文档