CG教案真实感图形的生成技术精讲.ppt
《CG教案真实感图形的生成技术精讲.ppt》由会员分享,可在线阅读,更多相关《CG教案真实感图形的生成技术精讲.ppt(93页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、22022-7-5真实感图形应用实例:真实感图形应用实例:32022-7-5在计算机图形设备生成真实逼真的图像、图形,需要经过在计算机图形设备生成真实逼真的图像、图形,需要经过以下以下4个步骤:个步骤:构造几何要素(点、线、多边形、图像、位图),创构造几何要素(点、线、多边形、图像、位图),创建对象的数学描述;建对象的数学描述;在三维空间上放置对象,选择有利的场景观察点;在三维空间上放置对象,选择有利的场景观察点;计算对象的颜色,这些颜色可以直接定义,也可以由计算对象的颜色,这些颜色可以直接定义,也可以由光照条件及纹理间接给出;光照条件及纹理间接给出;1.光栅化:把对象的数学描述和颜色信息转换
2、到屏幕的光栅化:把对象的数学描述和颜色信息转换到屏幕的像素。另外,也可能要执行消隐及对像素的操作。像素。另外,也可能要执行消隐及对像素的操作。显示图形的步骤显示图形的步骤42022-7-5三维空间中,物体之间或同一物体的不同部分之间存在着三维空间中,物体之间或同一物体的不同部分之间存在着相互遮挡关系,如何在图形的显示中反映这种遮挡关系?相互遮挡关系,如何在图形的显示中反映这种遮挡关系?u解决方法:解决方法: 消除隐藏面与隐藏线消除隐藏面与隐藏线现实世界中,人们观察物体产生的真实感觉来源于:现实世界中,人们观察物体产生的真实感觉来源于:物体的空间位置关系物体的空间位置关系近大远小的透视关系和遮挡
3、关近大远小的透视关系和遮挡关系。系。光线传播引起的物体表面颜色的自然分布光线传播引起的物体表面颜色的自然分布明暗过渡明暗过渡的颜色。的颜色。那么,如何在计算机中产生真实感的(逼真的)图形?那么,如何在计算机中产生真实感的(逼真的)图形?u解决方法:解决方法: 建立光照明模型、开发真实感图形绘制方法。建立光照明模型、开发真实感图形绘制方法。如何实现真实感图形的显示?如何实现真实感图形的显示?52022-7-58.1 消隐技术消隐技术图图8-1 图形具有二义性图形具有二义性 (a)线框图线框图 (b) )从右上往下看从右上往下看 (c) )从左下往上看从左下往上看)将三维场景绘制在计算机二维显示屏
4、上必须经过投影变换,将三维场景绘制在计算机二维显示屏上必须经过投影变换,投影变换将三维信息变换到二维平面上,这个过程中深度信息投影变换将三维信息变换到二维平面上,这个过程中深度信息被丢失,生成的图形往往具有二义性,如被丢失,生成的图形往往具有二义性,如图所示。图所示。abc62022-7-5n反映物体间的遮挡关系,就要确定对一个视点来说,反映物体间的遮挡关系,就要确定对一个视点来说,哪些物体的哪些表面是可见的,即确定哪些物体的哪些表面是可见的,即确定可见面可见面。不。不可见的面即为可见的面即为隐藏面隐藏面。n表面模型表面模型:确定可见面等价于消除场景中的不可见:确定可见面等价于消除场景中的不可
5、见面,即消除隐藏面,简称为面,即消除隐藏面,简称为面消隐面消隐 。n线框模型线框模型:显示采用线框模型表示的物体时,要消:显示采用线框模型表示的物体时,要消除不可见的线,即隐藏线的消除,简称除不可见的线,即隐藏线的消除,简称线消隐线消隐。空间遮挡关系,如何在计算机中反映出来?空间遮挡关系,如何在计算机中反映出来?72022-7-5n可见面判别算法,按实现空间可见面判别算法,按实现空间 (实现时所基于的坐实现时所基于的坐标系标系)分为两类分为两类物空间算法物空间算法(Object-space methods)像空间像法像空间像法(Image-space methods)8.1.1判别可见面的算法
6、判别可见面的算法82022-7-5物空间算法物空间算法n物空间算法物空间算法是在定义、描述物体的世界坐标系中实现的,是在定义、描述物体的世界坐标系中实现的,以场景中的物体为处理单元。以场景中的物体为处理单元。for(for(场景中的每一个物体场景中的每一个物体) ) 将其与场景中的其它物体比较,确定其表将其与场景中的其它物体比较,确定其表面的可见部分;面的可见部分; 显示该物体表面的可见部分;显示该物体表面的可见部分; 8.1.1判别可见面的算法判别可见面的算法92022-7-5物空间算法物空间算法n物空间算法物空间算法是在定义、描述物体的世界坐标系中实现的,是在定义、描述物体的世界坐标系中实
7、现的,以场景中的物体为处理单元。以场景中的物体为处理单元。这种方法把物体和物体的某些部分彼此比较,通过有关这种方法把物体和物体的某些部分彼此比较,通过有关几何运算,以确定哪些线或表面是不可见的。然后仅显几何运算,以确定哪些线或表面是不可见的。然后仅显示可见线,以此实现消隐,示可见线,以此实现消隐,算法精度较高,生成的图形可以放大多倍而仍然令人满算法精度较高,生成的图形可以放大多倍而仍然令人满意,适用于精密的工程应用领域。意,适用于精密的工程应用领域。8.1.1判别可见面的算法判别可见面的算法102022-7-5像空间算法像空间算法n像空间算法像空间算法是在观看物体的屏幕坐标系下实现的,它以窗是
8、在观看物体的屏幕坐标系下实现的,它以窗口内的每个像素为处理单元:口内的每个像素为处理单元:for(for(窗口内的每一个像素窗口内的每一个像素) ) 确定与此像素对应的距离视点最近的物体,确定与此像素对应的距离视点最近的物体, 以该物体表面该处的颜色来显示像素;以该物体表面该处的颜色来显示像素; 8.1.1判别可见面的算法判别可见面的算法112022-7-5像空间算法像空间算法在显示图形的屏幕坐标系中实现。在显示图形的屏幕坐标系中实现。对投影平面或显示屏幕上的每一个像素位置逐点地检对投影平面或显示屏幕上的每一个像素位置逐点地检测其可见性。测其可见性。算法比较粗糙,而且按图像空间算法得到的画面在
9、放算法比较粗糙,而且按图像空间算法得到的画面在放大后往往不能令人满意。大后往往不能令人满意。算法计算效率比较高,因为在光栅扫描过程中可以充算法计算效率比较高,因为在光栅扫描过程中可以充分利用画面的连贯性等性质。分利用画面的连贯性等性质。8.1.1判别可见面的算法判别可见面的算法122022-7-5n假设场景中有假设场景中有k个物体,平均每个物体的表面有个物体,平均每个物体的表面有h个多边形个多边形构成,显示区域中有构成,显示区域中有mn个像素,则方法一物空间算法的个像素,则方法一物空间算法的计算复杂度为计算复杂度为 O( (kh)2 ) ,方法二像空间算法的复杂度为,方法二像空间算法的复杂度为
10、 O(mnkh) 。n理论上讲,理论上讲,khmn,即物空间算法的计算量少于像空间,即物空间算法的计算量少于像空间算法的计算量,但实际上物体到视点距离的排序与遮挡判算法的计算量,但实际上物体到视点距离的排序与遮挡判别比较复杂,算法效率很大程度上取决于排序的效率。而别比较复杂,算法效率很大程度上取决于排序的效率。而以扫描线的方式实现像空间算法时容易利用连贯性质从而以扫描线的方式实现像空间算法时容易利用连贯性质从而使得像空间算法更具效率。使得像空间算法更具效率。 n常用的提高消隐算法效率的方法有:利用连贯性、背面剔常用的提高消隐算法效率的方法有:利用连贯性、背面剔除、包围盒技术、空间分割技术等等。
11、除、包围盒技术、空间分割技术等等。 算法复杂度比较:算法复杂度比较:132022-7-5一、利用连贯性一、利用连贯性n相邻事物的属性之间具有一定的连贯性,即从一个事物到相邻相邻事物的属性之间具有一定的连贯性,即从一个事物到相邻的事物,属性值通常是平缓过渡的,例如颜色值、空间位置关的事物,属性值通常是平缓过渡的,例如颜色值、空间位置关系等,这种连贯性可用于提高消隐算法的效率。系等,这种连贯性可用于提高消隐算法的效率。物体的连贯性物体的连贯性n如果物体如果物体A与与 物体物体B 完全相互分离,则在消隐时,完全相互分离,则在消隐时,只需要比较两物体之间的遮挡关系就可以了,而不只需要比较两物体之间的遮
12、挡关系就可以了,而不需要对它们的表面多边形逐一进行测试。需要对它们的表面多边形逐一进行测试。面的连贯性面的连贯性n一张面内的各种属性值一般都是缓慢变化的,允许一张面内的各种属性值一般都是缓慢变化的,允许我们采用增量的形式对其进行计算。我们采用增量的形式对其进行计算。8.1.2 提高消隐算法效率的常用方法提高消隐算法效率的常用方法142022-7-5n区域的连贯性(像素)区域的连贯性(像素)一个区域是指屏幕上一组相邻的像素,它们通常为同一个区域是指屏幕上一组相邻的像素,它们通常为同一个可见面所占据,可见性相同。一个可见面所占据,可见性相同。区域连贯性表现在一条扫描线上区域连贯性表现在一条扫描线上
13、 即为即为 扫描线上的每个扫描线上的每个区间内只有一个面可见。区间内只有一个面可见。n扫描线的连贯性n在相邻的两条扫描线上,可见面的分布情况相似。n深度连贯性n同一表面上的相邻部分深度是近似的,而占据屏幕上同一区域的不同表面其深度不同。这样,在判断表面间的遮挡关系时,只需要取其上一点 计算出深度值,比较该深度值便能得出结果。152022-7-5n消隐与投影密切相关消隐与投影密切相关消隐必须在投影之前完成,因为消隐需要三维信息。消隐必须在投影之前完成,因为消隐需要三维信息。物体之间的遮挡关系,与投影中心(视点)的选取有关。物体之间的遮挡关系,与投影中心(视点)的选取有关。(图图1)物体之间的遮挡
14、关系与投影方式有关。物体之间的遮挡关系与投影方式有关。(图图2)二、将透视投影转换成平行投影二、将透视投影转换成平行投影n对物体进行平行投影比透视投影简单,所以一般先将透视对物体进行平行投影比透视投影简单,所以一般先将透视投影转换成平行投影,再进行消隐。投影转换成平行投影,再进行消隐。162022-7-5包围盒包围盒n一个形体的包围盒,是指包围它的简单形体,如二一个形体的包围盒,是指包围它的简单形体,如二维空间中的矩形、圆,三维空间中的球、长方体等。维空间中的矩形、圆,三维空间中的球、长方体等。一个好的包围盒要具有两个条件一个好的包围盒要具有两个条件:n该包围盒充分紧密地包围着形体;该包围盒充
15、分紧密地包围着形体;n对包围盒的测试比较简单。对包围盒的测试比较简单。常用的包围盒常用的包围盒n长方体长方体n球球n圆柱圆柱三、包围盒技术三、包围盒技术172022-7-5n包围盒技术的应用包围盒技术的应用常用来常用来 避免盲目的求交测试以及各种物体间的比较,避免盲目的求交测试以及各种物体间的比较,以达到减少计算量,提高效率的目的。以达到减少计算量,提高效率的目的。包围盒相交,包围盒相交,A、B也相交也相交包围盒相交,包围盒相交,A、B不相交不相交包围盒不相交,说明包围盒不相交,说明A、B不相交,从而无需对不相交,从而无需对A、B进行相互间的遮进行相互间的遮挡测试;若包围盒相交,则可能有两种情
16、况,还需要进一步判断。挡测试;若包围盒相交,则可能有两种情况,还需要进一步判断。ABAB、为 、 的投影182022-7-5n前向面与后向面(背面)前向面与后向面(背面)若一个多边形的外法向与投影方向(观察方向)的夹若一个多边形的外法向与投影方向(观察方向)的夹角为钝角,称其为角为钝角,称其为前向面前向面。若一个多边形的外法向与。若一个多边形的外法向与投影方向(观察方向)的夹角为锐角,称其为投影方向(观察方向)的夹角为锐角,称其为后向面后向面(背面背面)。)。四、背面剔除四、背面剔除n在没有被遮挡的情况下,前向面是可见的,背面总是被前向面遮挡,从而是不可见的。在消隐之前剔除背面,将大大减少消隐
17、的计算量。192022-7-5n一般,要判断一个物体是否可见,必须将它与场景一般,要判断一个物体是否可见,必须将它与场景中的所有物体进行比较,而不管是否存在相互遮挡中的所有物体进行比较,而不管是否存在相互遮挡的可能。的可能。n为了避免不必要的测试,可以采用分割技术。为了避免不必要的测试,可以采用分割技术。将投影平面上的窗口分成若干小区域将投影平面上的窗口分成若干小区域在物体所在的三维空间中,将视见体分成一个个小的在物体所在的三维空间中,将视见体分成一个个小的长方体。长方体。五、空间分割技术五、空间分割技术202022-7-5n物体的分层表示是指利用模型变换将物体表示成一物体的分层表示是指利用模
18、型变换将物体表示成一棵树的形式。(下图)棵树的形式。(下图)n模型变换的目的是便于把子节点以合适的尺寸与位模型变换的目的是便于把子节点以合适的尺寸与位置安装到其父节点中。置安装到其父节点中。六、物体的分层表示六、物体的分层表示 采用分层表示可以减采用分层表示可以减少场景中物体的个数,从少场景中物体的个数,从而降低算法复杂度。而降低算法复杂度。 将父节点代表的物体将父节点代表的物体看作子节点代表物体的包看作子节点代表物体的包围盒,当两个父节点之间围盒,当两个父节点之间不存在遮挡关系时,就没不存在遮挡关系时,就没有必要对两者的子节点做有必要对两者的子节点做进一步测试。进一步测试。212022-7-
19、5n隐藏线的产生是因为在给定的观察方向下,某些棱隐藏线的产生是因为在给定的观察方向下,某些棱(或棱的一部分)被表面多边形遮挡成为不可见,(或棱的一部分)被表面多边形遮挡成为不可见,因此多面体隐藏线消除可以归结为一个根本问题:因此多面体隐藏线消除可以归结为一个根本问题:在给定的观察方向下,给定一条空间线段在给定的观察方向下,给定一条空间线段P1P2和一和一个多边形个多边形,判断线段是否被多边形遮挡。如果遮,判断线段是否被多边形遮挡。如果遮挡,求出遮挡部分。步骤如下:挡,求出遮挡部分。步骤如下: 将线段和多边形投影到投影平面上得到线段将线段和多边形投影到投影平面上得到线段P1P2 和多边形和多边形
20、 。计算线段计算线段 P1P2和多边形和多边形 各条边的交点。各条边的交点。 8.1.3 多面体隐藏线消除多面体隐藏线消除222022-7-5交点将交点将P1P2分成若干子线段,特别地当交点不存在分成若干子线段,特别地当交点不存在时,子线段只有一个,即时,子线段只有一个,即P1P2自身。在每个子线段自身。在每个子线段上的所有点具有相同的隐藏性。上的所有点具有相同的隐藏性。分别判断各个子线段的隐藏性。分别判断各个子线段的隐藏性。取子线段的中点,判断该点是否在多边形取子线段的中点,判断该点是否在多边形内。内。如不在多边形内,则说明子线段与多边形如不在多边形内,则说明子线段与多边形是分离的,是分离的
21、,不存在隐藏关系,因而该子线段是可见的。不存在隐藏关系,因而该子线段是可见的。如在多边形内,从子线段的中点向视点引射线,如果射如在多边形内,从子线段的中点向视点引射线,如果射线与多边形相交,则该子线段被多边形隐藏,否则该子线与多边形相交,则该子线段被多边形隐藏,否则该子线段可见。线段可见。 232022-7-5n线段和一个多边形进行隐藏性判断时,涉及到的运算线段和一个多边形进行隐藏性判断时,涉及到的运算包括投影变换、平面上线段和多边形的求交、判断点包括投影变换、平面上线段和多边形的求交、判断点是否在多边形内、空间中射线和平面求交等。是否在多边形内、空间中射线和平面求交等。如果将多面体的每条棱与
22、每个多边形都按上面的方法如果将多面体的每条棱与每个多边形都按上面的方法消除隐藏线,那么计算量将非常大。可以采取如下措消除隐藏线,那么计算量将非常大。可以采取如下措施可以减少计算量:施可以减少计算量: 提高消隐效率,减少计算量提高消隐效率,减少计算量 消除自隐藏线、隐藏面消除自隐藏线、隐藏面 利用多面体表面多边形的法矢法矢判别“朝后的面”即不可见面。242022-7-5深度测试深度测试 在观察坐标系下判断线段与多边形的前后关在观察坐标系下判断线段与多边形的前后关系。如多边形完全在线段之后,则线段完全可见,系。如多边形完全在线段之后,则线段完全可见,无需就线段和多边形的遮挡关系进行进一步判断。无需
23、就线段和多边形的遮挡关系进行进一步判断。 包围盒测试包围盒测试 包围盒不相交,线段和多边形也不相交,线段包围盒不相交,线段和多边形也不相交,线段完全可见,无需就线段和多边形的遮挡关系进行完全可见,无需就线段和多边形的遮挡关系进行进一步判断。进一步判断。 252022-7-5常用的面消隐算法常用的面消隐算法n画家算法画家算法nZ缓冲器算法缓冲器算法n扫描线扫描线Z缓冲器算法缓冲器算法n扫描线算法扫描线算法n区域子分算法区域子分算法n光线投射算法等等。光线投射算法等等。8.1.4 面消隐面消隐262022-7-5n画家作画画家作画一、画家算法一、画家算法这种作画的方法这种作画的方法用于消隐,即为用
24、于消隐,即为画家算法画家算法。272022-7-5n画家算法的基本思路:画家算法的基本思路:先将场景中的物体按其距离观察点的远近进行排序,结果先将场景中的物体按其距离观察点的远近进行排序,结果存在一张存在一张线性表线性表中。距观察点远者称其优先级低,放在表中。距观察点远者称其优先级低,放在表头,距观察点近者称其优先级高,放在表尾,这张表称为头,距观察点近者称其优先级高,放在表尾,这张表称为深度优先级表深度优先级表。按照从表头到表尾的顺序逐个绘制物体。由于距离观察点按照从表头到表尾的顺序逐个绘制物体。由于距离观察点近的物体后画,它覆盖了远的物体,最终在屏幕上产生了近的物体后画,它覆盖了远的物体,
25、最终在屏幕上产生了遮挡关系的正确结果,相当于消除了隐藏面。遮挡关系的正确结果,相当于消除了隐藏面。低低高高282022-7-5画家消隐算法画家消隐算法 对场景中的多边形按深度进行排序,对场景中的多边形按深度进行排序,形成深度优先级表;形成深度优先级表; 按从远到近的顺序显示多边形;按从远到近的顺序显示多边形;画家消隐算法:画家消隐算法:低低高高消隐的基本(核心)问题:排序消隐的基本(核心)问题:排序292022-7-5n画家排序算法不能处理多边形循环遮挡的情况和两画家排序算法不能处理多边形循环遮挡的情况和两个多边形相互穿透的情况。个多边形相互穿透的情况。问题问题!n为了避免这种情况的发生,可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CG 教案 真实感 图形 生成 技术
限制150内