CG10-隐藏面的消除_第1页
CG10-隐藏面的消除_第2页
CG10-隐藏面的消除_第3页
CG10-隐藏面的消除_第4页
CG10-隐藏面的消除_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2页第10章 隐藏面的消除n基本概念基本概念n提高消隐算法效率的常用方法提高消隐算法效率的常用方法n画家算法画家算法nZ缓冲器算法缓冲器算法n扫描线扫描线Z缓冲器算法缓冲器算法n扫描线算法扫描线算法n光线投射算法光线投射算法nOpenGL相关函数相关函数第3页第10章 隐藏面的消除n问题问题投影变换失去了深度信息,往往导致图形的二义性及失投影变换失去了深度信息,往往导致图形的二义性及失去遮挡关系去遮挡关系要消除二义性和保持遮挡关系,就必须在绘制时消除被要消除二义性和保持遮挡关系,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏遮挡的不可见的线或面,习惯上称作消除隐藏线和隐

2、藏面,简称为面,简称为消隐消隐经过消隐得到的投影图称为物体的真实图形经过消隐得到的投影图称为物体的真实图形长方体线框投影图的二义性长方体线框投影图的二义性失去遮挡关系失去遮挡关系第4页第10章 隐藏面的消除n消隐的对象消隐的对象 三维物体三维物体 三维体的表示主要采用边界(多边形)表示三维体的表示主要采用边界(多边形)表示n消隐结果消隐结果 与观察物体有关,也与视点有关与观察物体有关,也与视点有关线框图线框图 消隐图消隐图 真实感图形真实感图形第5页第10章 隐藏面的消除n消隐分类消隐分类 消除隐藏面:确定可见面(消除不可见面)消除隐藏面:确定可见面(消除不可见面)表面表示表面表示物体(本章讨

3、论)物体(本章讨论) 消除隐藏线:消除不可见线消除隐藏线:消除不可见线线框表示物体线框表示物体长方体线框投影图的二义性长方体线框投影图的二义性失去遮挡关系失去遮挡关系第6页第10章 隐藏面的消除n面消隐算法分类面消隐算法分类 投影窗口内的像素为处理单元。投影窗口内的像素为处理单元。确定最近点确定最近点 for (for (窗口内的每一个像素窗口内的每一个像素) ) 确定距视点最近的物体,以该物体表面的颜色来显示像素确定距视点最近的物体,以该物体表面的颜色来显示像素 图像空间图像空间image-space第7页第10章 隐藏面的消除n面消隐算法分类(续)面消隐算法分类(续) 场景中的物体为处理单

4、元。场景中的物体为处理单元。物体上的面是否最近物体上的面是否最近for (for (场景中的每一个物体场景中的每一个物体) ) 将其与场景中的其它物体比较,确定其表面的可见部分;将其与场景中的其它物体比较,确定其表面的可见部分; 显示该物体表面的可见部分;显示该物体表面的可见部分; 场景空间场景空间object-space第8页第10章 隐藏面的消除n基本概念基本概念n提高消隐算法效率的常用方法提高消隐算法效率的常用方法n画家算法画家算法nZ缓冲器算法缓冲器算法n扫描线扫描线Z缓冲器算法缓冲器算法n扫描线算法扫描线算法n光线投射算法光线投射算法nOpenGL相关函数相关函数第9页第10章 隐藏

5、面的消除n主要技术主要技术 利用连贯性利用连贯性 相邻事物的属性之间有一定的连贯性,其属性值通常相邻事物的属性之间有一定的连贯性,其属性值通常是平缓过渡的,如颜色值、空间位置关系等是平缓过渡的,如颜色值、空间位置关系等 包括:包括:n物体连贯性物体连贯性n面的连贯性面的连贯性n区域连贯性区域连贯性n扫描线连贯性扫描线连贯性n深度连贯性深度连贯性第10页第10章 隐藏面的消除n主要技术主要技术(1)利用连贯性)利用连贯性 物体连贯性:如果物体物体连贯性:如果物体A A与物体与物体B B是完全相互分离的,是完全相互分离的,则在消隐时,只需比较则在消隐时,只需比较A A、B B两物体之间的遮挡关系,

6、两物体之间的遮挡关系,无须对它们的表面多边形逐一进行测试。例如,若无须对它们的表面多边形逐一进行测试。例如,若A A距视点较距视点较B B远,则在测试远,则在测试B B上的表面的可见性时,无须上的表面的可见性时,无须考虑考虑A A的表面的表面 面的连贯性:一张面内的各种属性值一般都是缓慢变面的连贯性:一张面内的各种属性值一般都是缓慢变化的,允许采用增量形式对其进行计算化的,允许采用增量形式对其进行计算第11页第10章 隐藏面的消除n主要技术主要技术(1)利用连贯性)利用连贯性 区域连贯性:区域指屏幕上一组相邻的像素,它们通区域连贯性:区域指屏幕上一组相邻的像素,它们通常为同一个可见面所占据,可

7、见性相同。区域连贯性常为同一个可见面所占据,可见性相同。区域连贯性表现在一条扫描线上即为扫描线上的每个区间内只有表现在一条扫描线上即为扫描线上的每个区间内只有一个面可见一个面可见 扫描线的连贯性:相邻两条扫描线上,可见面的分布扫描线的连贯性:相邻两条扫描线上,可见面的分布情况相似情况相似 深度连贯性:同一表面上的相邻部分深度是相近的,深度连贯性:同一表面上的相邻部分深度是相近的,而占据屏幕上同一区域的不同表面的深度不同而占据屏幕上同一区域的不同表面的深度不同第12页第10章 隐藏面的消除(2)透视投影转换为平行投影)透视投影转换为平行投影 消隐在投影前完成消隐在投影前完成 物体间的遮挡关系与投

8、影中心相关物体间的遮挡关系与投影中心相关 物体间的遮挡关系与投影方式相关物体间的遮挡关系与投影方式相关第13页第10章 隐藏面的消除(3)包围盒技术包围盒技术定义:一个形体的包围盒指的是包围它的简单形体定义:一个形体的包围盒指的是包围它的简单形体两个条件两个条件 包围盒充分紧密包围着形体包围盒充分紧密包围着形体 对其的测试比较简单对其的测试比较简单主要包围盒主要包围盒 长方体长方体 正方体正方体 球球第14页第10章 隐藏面的消除 应用应用避免盲目求交避免盲目求交例如:两个空间多边形例如:两个空间多边形A、B在投影平面上的投影分别为在投影平面上的投影分别为A,B ,因为,因为A 、B的矩形包围

9、盒不相交,则的矩形包围盒不相交,则A、B不相交不相交,无须进行遮挡测试。右下图,无须进行遮挡测试。右下图(a)包围盒相交,投影也相交包围盒相交,投影也相交;(b)包围盒相交,投影不相交包围盒相交,投影不相交第15页第10章 隐藏面的消除(4)背面剔除背面剔除外法向:规定每个多边形的外法向都是指向物体外部的外法向:规定每个多边形的外法向都是指向物体外部的前向面:若多边形的外法向与投影方向(观察方向)的夹前向面:若多边形的外法向与投影方向(观察方向)的夹角为钝角,称为前向面角为钝角,称为前向面后向面:若多边形的外法向与投影方向(观察方向)的夹后向面:若多边形的外法向与投影方向(观察方向)的夹角为锐

10、角,称为后向面(背面)角为锐角,称为后向面(背面)投影方向投影方向夹角为夹角为180u第16页第10章 隐藏面的消除(4)背面剔除(续)背面剔除(续)剔除依据:背面总是被前向面所遮挡,从而不可见剔除依据:背面总是被前向面所遮挡,从而不可见前向面前向面 后向面后向面JEAF、HCBG、JIHGF为为后向面后向面CGV VABDEFHIJN NVnVn第17页第10章 隐藏面的消除(5)空间分割技术)空间分割技术 依据:场景中的物体,它们的投影在投影平面上是否有依据:场景中的物体,它们的投影在投影平面上是否有重叠部分?(是否存在相互遮挡的可能?)对于根本不重叠部分?(是否存在相互遮挡的可能?)对于

11、根本不存在相互遮挡关系的物体,应避免这种不必要的测试存在相互遮挡关系的物体,应避免这种不必要的测试 原因:物体在场景中分散,有些物体的投影相距甚远,原因:物体在场景中分散,有些物体的投影相距甚远,不会存在遮挡关系不会存在遮挡关系 方法:将投影平面上的窗口分成若干小区域;为每个小方法:将投影平面上的窗口分成若干小区域;为每个小区域建立相关物体表,表中物体的投影于该区域有相交区域建立相关物体表,表中物体的投影于该区域有相交部分;则在小区域中判断那个物体可见时,只要对该区部分;则在小区域中判断那个物体可见时,只要对该区域的相关物体表中的物体进行比较域的相关物体表中的物体进行比较第18页第10章 隐藏

12、面的消除(6)物体的分层表示)物体的分层表示 表示形式:模型变换中的树形表示方式表示形式:模型变换中的树形表示方式 原理:减少场景中物体的个数,从而降低算法复杂度原理:减少场景中物体的个数,从而降低算法复杂度第19页第10章 隐藏面的消除(6)物体的分层表示(续)物体的分层表示(续) 方法:方法: 将父节点所代表的物体看成子节点所代表物将父节点所代表的物体看成子节点所代表物体的包围盒,当两个父节点之间不存在遮挡关系时,体的包围盒,当两个父节点之间不存在遮挡关系时,就没有必要对两者的子节点做进一步测试。父节点之就没有必要对两者的子节点做进一步测试。父节点之间的遮挡关系可以用它们之间的包围盒进行预

13、测试间的遮挡关系可以用它们之间的包围盒进行预测试第20页第10章 隐藏面的消除n基本概念基本概念n提高消隐算法效率的常用方法提高消隐算法效率的常用方法n画家算法画家算法nZ缓冲器算法缓冲器算法n扫描线扫描线Z缓冲器算法缓冲器算法n扫描线算法扫描线算法n光线投射算法光线投射算法nOpenGL相关函数相关函数第21页第10章 隐藏面的消除n背景背景画家的作画顺序暗示出所画物体之间的相互遮挡关系画家的作画顺序暗示出所画物体之间的相互遮挡关系第22页第10章 隐藏面的消除n算法基本思想:算法基本思想:1 1)先把屏幕置成背景色)先把屏幕置成背景色2 2)将场景中的物体按其距观察点的远近进行排序,结果放

14、)将场景中的物体按其距观察点的远近进行排序,结果放在一张线性表中;(线性表构造:距观察点远的称优先级在一张线性表中;(线性表构造:距观察点远的称优先级低,放在表头;距观察点近的称优先级高,放在表尾。该低,放在表头;距观察点近的称优先级高,放在表尾。该表称为深度优先级表)表称为深度优先级表)3 3)然后按照从远到近(从表头到表尾)的顺序逐个绘制物)然后按照从远到近(从表头到表尾)的顺序逐个绘制物体。体。n关键关键如何对场景中的物体按深度(远近)排序,建立深度优先如何对场景中的物体按深度(远近)排序,建立深度优先级表?级表?第23页第10章 隐藏面的消除n多边形的排序算法多边形的排序算法*1 1)

15、将场景中所有多边形存入一个线性表,记为)将场景中所有多边形存入一个线性表,记为L;2 2)如果)如果L L中仅有一个多边形,算法结束;否则根据每个多边形的中仅有一个多边形,算法结束;否则根据每个多边形的Zmin 对它们预排序。不妨假定多边形对它们预排序。不妨假定多边形P P落在落在L L的表首,即的表首,即Zmin(P) 为最小。再记为最小。再记 Q 为为 L P (表中其余多边形)中任意表中其余多边形)中任意一个;一个;3 3)判别)判别P, Q之间的关系,有如下二种:之间的关系,有如下二种:(1 1)对所有的)对所有的Q,有,有Zmax(P) Zmin (Q),需进一步需进一步判别判别:第

16、24页第10章 隐藏面的消除(A)若若P, Q的投影的投影 P, Q 的包围盒不的包围盒不相交相交( (图图a) ),则,则P, Q 在表中的次序不在表中的次序不重要,令重要,令L = L L = L P , P , 返回返回2 2); ;否否则进行下一步则进行下一步(B B)若)若 P 的所有顶点位于的所有顶点位于 Q 所在平面所在平面的不可见的一侧的不可见的一侧( (图图b) ) ,则,则P, Q关系关系正确,令正确,令L = L P, 返回返回 2 2); ;否则否则进行下一步进行下一步第25页第10章 隐藏面的消除(C)若若Q的所有顶点位于的所有顶点位于 P 所在平面的所在平面的可见的

17、一侧可见的一侧( (图图c) ),则,则P, Q关系正确,关系正确,令令L = = L P , 返回返回2 2); ;否则进行下否则进行下一步一步(D)对对P, Q投影投影P, Q求交,若求交,若P, Q不不相交相交( (图图d) ),则,则P, Q在表中的次序不重在表中的次序不重要,令要,令L = L P , 返回返回 2 2); ; 否则在否则在它们所相交的区域中任取一点,计算它们所相交的区域中任取一点,计算 P, Q在该点的深度值,如果在该点的深度值,如果 P 的深度的深度小,则小,则P, Q关系正确,令关系正确,令L = L P , 返回返回 2 2); ;否则交换否则交换P, Q,

18、返回返回3 3)第26页第10章 隐藏面的消除n问题问题* 不能处理不能处理多边形循环遮挡和多边形相互穿透多边形循环遮挡和多边形相互穿透解决方法:分割解决方法:分割第27页第10章 隐藏面的消除n基本概念基本概念n提高消隐算法效率的常用方法提高消隐算法效率的常用方法n画家算法画家算法nZ缓冲器算法缓冲器算法n扫描线扫描线Z缓冲器算法缓冲器算法n扫描线算法扫描线算法n光线投射算法光线投射算法nOpenGL相关函数相关函数第28页第10章 隐藏面的消除n又称为又称为ZBuffer算法算法( (深度缓冲深度缓冲 depth-buffer) )n组成:组成: 帧缓冲器帧缓冲器 - - 保保存各像素颜色

19、值存各像素颜色值 Z 缓冲器缓冲器 - - 保保存各像素处物体深度值存各像素处物体深度值 Z 缓冲器中的单元与帧缓冲器中的单元一一对应缓冲器中的单元与帧缓冲器中的单元一一对应屏幕帧缓冲器Z缓冲器每个单元存放对应象素的颜色值每个单元存放对应象素的深度值第29页第10章 隐藏面的消除n基本思想基本思想 (1 1)先将)先将 Z 缓冲器中个单元的初始值置缓冲器中个单元的初始值置为最小值。为最小值。 (2 2)当要改变某个像素的颜色值时,首先)当要改变某个像素的颜色值时,首先检查当前多边形的深度值是否大于该像素检查当前多边形的深度值是否大于该像素原来的深度值(保存在该像素所对应的原来的深度值(保存在该

20、像素所对应的Z Z缓冲器的单元中),缓冲器的单元中), A:如果大于,说明当前多边形更靠近观如果大于,说明当前多边形更靠近观察点,用它的颜色替换像素原来的颜色;察点,用它的颜色替换像素原来的颜色; B:否则说明在当前像素处,当前多边形否则说明在当前像素处,当前多边形被前面所绘制的多边形遮挡了,是不可见被前面所绘制的多边形遮挡了,是不可见的,像素的颜色值不改变的,像素的颜色值不改变第30页第10章 隐藏面的消除n算法算法 帧缓存全置为背景色;帧缓存全置为背景色;深度缓存全置为最小深度缓存全置为最小 Z 值;值;for( (每一个多边形每一个多边形) ) for( (该多边形所覆盖的每个像素该多边

21、形所覆盖的每个像素(x, y) ) ) 计算该多边形在该像素的深度值计算该多边形在该像素的深度值 Z(x, y); if ( Z(x, y)大于大于Z缓存在缓存在(x, y)的值的值) ) 把把 Z(x, y)存入存入 Z 缓存中缓存中(x, y)处;处; 把多边形在把多边形在(x, y)处的颜色值存入帧缓存的处的颜色值存入帧缓存的(x, y)处;处; 需要计算的像素深度值次数需要计算的像素深度值次数= =多边形个数多边形个数* *多边形平均占据的像素个数多边形平均占据的像素个数第31页第10章 隐藏面的消除n特点特点 Z 缓冲器算法是所有图像空间算法中最简单的一种隐藏缓冲器算法是所有图像空间

22、算法中最简单的一种隐藏面消除算法。面消除算法。在像素级上以近物取代远物,与形体在屏在像素级上以近物取代远物,与形体在屏幕上的出现顺序无关。幕上的出现顺序无关。优点优点 1 1)简单稳定,利于硬件实现)简单稳定,利于硬件实现 2 2)不需要整个场景的几何数据不需要整个场景的几何数据缺点缺点 1 1)需要一个额外的)需要一个额外的 Z 缓冲器缓冲器 2 2)每个多边形占据的每个像素处都要计算深度值,)每个多边形占据的每个像素处都要计算深度值, 计算量大计算量大第32页第10章 隐藏面的消除n基本概念基本概念n提高消隐算法效率的常用方法提高消隐算法效率的常用方法n画家算法画家算法nZ缓冲器算法缓冲器

23、算法n扫描线扫描线Z缓冲器算法缓冲器算法n扫描线算法扫描线算法n光线投射算法光线投射算法nOpenGL相关函数相关函数第33页第10章 隐藏面的消除10.5 扫描线扫描线Z缓冲器算法缓冲器算法n由来由来 Z 缓冲器算法中所需要的缓冲器算法中所需要的 Z 缓冲器容量较大,为克服这缓冲器容量较大,为克服这个缺点可以将整个绘图区域分割成若干个小区域,然后一个缺点可以将整个绘图区域分割成若干个小区域,然后一个区域一个区域地显示,这样个区域一个区域地显示,这样 Z 缓冲器的单元数只要等缓冲器的单元数只要等于一个区域内像素的个数于一个区域内像素的个数如果将小区域取成屏幕上的扫描线,就得到扫描线如果将小区域

24、取成屏幕上的扫描线,就得到扫描线 Z 缓缓冲器算法冲器算法第34页第10章 隐藏面的消除10.5 扫描线扫描线Z缓冲器算法缓冲器算法n算法思想算法思想在处理当前扫描线时,用一个一维数组作为当前扫描线的在处理当前扫描线时,用一个一维数组作为当前扫描线的Z-buffer。首先找出与当前扫描线相关的多边形,以及每。首先找出与当前扫描线相关的多边形,以及每个多边形中相关的边对。个多边形中相关的边对。对每一个边对之间的小区间上的各像素,计算深度,并与对每一个边对之间的小区间上的各像素,计算深度,并与Z-buffer中的值比较,找出各像素处可见平面。中的值比较,找出各像素处可见平面。写帧缓存。采用增量算法

25、计算深度写帧缓存。采用增量算法计算深度第35页第10章 隐藏面的消除10.5 扫描线扫描线Z缓冲器算法缓冲器算法n算法(算法(p291)* for ( v= 0;vvmax;v+) for (u= 0; u Z缓冲器的第缓冲器的第u单元的值)单元的值) 置帧缓冲器的第置帧缓冲器的第(u,v)单元值为当前多边形颜色;单元值为当前多边形颜色; 置置Z缓冲器的第缓冲器的第u单元值为单元值为d; /处理下一条扫描线处理下一条扫描线第36页第10章 隐藏面的消除n缺点缺点 在每一个被多边形覆盖像素处需要计算深度值在每一个被多边形覆盖像素处需要计算深度值 被多个多边形覆盖的像素需要多次计算深度值被多个多边

26、形覆盖的像素需要多次计算深度值第37页第10章 隐藏面的消除n基本概念基本概念n提高消隐算法效率的常用方法提高消隐算法效率的常用方法n画家算法画家算法nZ缓冲器算法缓冲器算法n扫描线扫描线Z缓冲器算法缓冲器算法n扫描线算法扫描线算法n光线投射算法光线投射算法nOpenGL相关函数相关函数第38页第10章 隐藏面的消除n比较比较与与Z-Buffer算法相比,扫描线算法相比,扫描线Z算法有了很大改进,比如算法有了很大改进,比如所需的所需的Z-Buffer大大减小,计算深度利用了面连贯性等大大减小,计算深度利用了面连贯性等缺点:缺点:每个像素处都计算深度值,甚至不止一次的计算,每个像素处都计算深度值

27、,甚至不止一次的计算,运算量仍然很大运算量仍然很大改进:改进:在一条扫描线上,每个区间只计算一次深度,即扫在一条扫描线上,每个区间只计算一次深度,即扫描线算法,又称区间扫描线算法描线算法,又称区间扫描线算法第39页第10章 隐藏面的消除n基本思想基本思想 多边形多边形P1、P2的边界在投影平面上的投影将一条扫描线的边界在投影平面上的投影将一条扫描线划分成若干个区间划分成若干个区间0,u1 u1,u2 u2,u3 u3,u4 , u4,umax 覆盖每个区间的有覆盖每个区间的有0个、个、1个或多个多边形,但仅有一个个或多个多边形,但仅有一个可见。在区间上任取一个像素,计算该像素处各多边形可见。在

28、区间上任取一个像素,计算该像素处各多边形(投影包含了该像素的多边形)的深度值,深度值最大(投影包含了该像素的多边形)的深度值,深度值最大者即为可见多边形,用它的颜色显示整个区间者即为可见多边形,用它的颜色显示整个区间第40页第10章 隐藏面的消除n注意注意* *该算法要求多边形不能相互贯穿,否则在同一区间上,该算法要求多边形不能相互贯穿,否则在同一区间上,多边形深度值的次序会发生变化多边形深度值的次序会发生变化如图:在区间如图:在区间 u1 1, ,u2 2 上,多边形上,多边形P1 1的深度值大,在区间的深度值大,在区间 u3 3, ,u4 4 上,多边形上,多边形P2 2的深度值大,而在区

29、间的深度值大,而在区间 u2 2, ,u3 3 上,上,两个多边形的深度值次序发生交替两个多边形的深度值次序发生交替第41页第10章 隐藏面的消除n算法算法* for (for (绘图窗口内的每一条扫描线)绘图窗口内的每一条扫描线) 求投影与当前扫描线相交的所有多边形;求投影与当前扫描线相交的所有多边形; 求上述多边形中投影与当前扫描线相交的所有边,将它们记录在活性边求上述多边形中投影与当前扫描线相交的所有边,将它们记录在活性边 表表AELAEL中;中; 求求AELAEL中每条边的投影与扫描线的交点;中每条边的投影与扫描线的交点; 按交点的按交点的u u坐标将坐标将AELAEL中各边从左到右排

30、序,两两配对组成一个区间;中各边从左到右排序,两两配对组成一个区间; for for (AELAEL中每个区间)中每个区间) 求覆盖该区间的所有多边形,将它们记入活化多边形表求覆盖该区间的所有多边形,将它们记入活化多边形表APLAPL中;中; 在区间上任取一点,计算在区间上任取一点,计算APLAPL中各多边形在该点的深度值,记深度最中各多边形在该点的深度值,记深度最大者为大者为P P; 用多边形用多边形P P的颜色填充该区间;的颜色填充该区间; 第42页第10章 隐藏面的消除n数据结构(类似于扫描线数据结构(类似于扫描线Z-Buffer算法中的数据结算法中的数据结构)构)* 多边形分类表多边形

31、分类表PT 活性多边形表活性多边形表APL 边的分类表边的分类表ET 活性边表活性边表AEPLn改进改进* 在一条扫描线上,以区间为单位确定多边形的可见性在一条扫描线上,以区间为单位确定多边形的可见性 不再需要不再需要Z-Buffer第43页第10章 隐藏面的消除n基本概念基本概念n提高消隐算法效率的常用方法提高消隐算法效率的常用方法n画家算法画家算法nZ缓冲器算法缓冲器算法n扫描线扫描线Z缓冲器算法缓冲器算法n扫描线算法扫描线算法n光线投射算法光线投射算法nOpenGL相关函数相关函数第44页第10章 隐藏面的消除n基本思想基本思想将通过绘图窗口内每一个像素的投影线与场景中的所有将通过绘图窗

32、口内每一个像素的投影线与场景中的所有多边形求交。如果有交点,用深度值最大的交点(最近多边形求交。如果有交点,用深度值最大的交点(最近的)所属的多边形的颜色显示相应的像素;如果没有交的)所属的多边形的颜色显示相应的像素;如果没有交点,说明没有多边形的投影覆盖此像素,用背景色显示点,说明没有多边形的投影覆盖此像素,用背景色显示第45页第10章 隐藏面的消除n算法算法for ( v= 0;vvmax;v+)for ( v= 0;vvmax;v+)for (u= 0; uumax; u+)for (u= 0; uumax; u+) 形成通过像素形成通过像素(u,v)(u,v)的投影线;的投影线; fo

33、r (for (场景中每一个多边形)场景中每一个多边形) 将投影线与多边形求交;将投影线与多边形求交; if (if (有交点)有交点) 以最近交点所属多边形的颜色显示像素以最近交点所属多边形的颜色显示像素(u,v)(u,v) else else 以背景色显示像素以背景色显示像素(u,v)(u,v); 第46页第10章 隐藏面的消除n基本概念基本概念n提高消隐算法效率的常用方法提高消隐算法效率的常用方法n画家算法画家算法nZ缓冲器算法缓冲器算法n扫描线扫描线Z缓冲器算法缓冲器算法n扫描线算法扫描线算法n光线投射算法光线投射算法nOpenGL相关函数相关函数第47页第10章 隐藏面的消除n多边形剔除函数消除后向面(背面)多边形剔除函数消除后向面(背面) 激活:激活:glEnable(GL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论