CG11图形消隐处理(精选)

合集下载

利用OpenGL进行CAD三维图形消隐处理

利用OpenGL进行CAD三维图形消隐处理

利用OpenGL进行CAD三维图形消隐处理利用OpenGL进行CAD三维图形消隐处理三维图形消隐算法已比较成熟,但要普通编程人员对复杂三维图形进行消隐编程,却不是容易的事。

OpenGL图形库中提供了消隐处理函数,但消隐却不知因何原因而质量不高,如消隐时直线断断续续。

为此笔者进行了一定改进和精细消隐处理,下面介绍两种办法。

一、一般消隐这种方法为首先设置消隐使能,初始化深度缓存,设置消隐比较,直接进行绘图即可。

但此种结果是直线断断续续,时有时无,效果差。

改进只需将直线线宽加粗,若需多边形边框一同绘出,则要GL_LINES方式将边框线段重绘。

具体方法如下:glEnable(GL_DEPTH_TEST);//设置消隐使能glClearDepth(1.0);//设置初始化深度缓存值glClear(GL_DEPTH_BUFFER_BIT);//深度缓存消除gldephFunc(GL_LEQUAL);//设置消隐比较glLineWidth(2.0);//直线线宽应比多连形线宽多一倍下述设置后,即可开始绘图。

消隐能正常显示,只是直线线宽均比多边形宽一倍,图形变得粗糙,效果不十理想。

二、精细消隐处理精细消隐设计分三步:1、首先在消隐方式下对所有多边形面进行绘图,其目的是在深度缓存中写入消隐后的多边形面的Z值,并比较后再写入深度缓存,即大大简化了多边形面的Z缓存计算。

2、将直线及多边形边框直线由目标坐标转换成窗口坐标下的值,并将线段离散化为窗口坐标下的象素点,再比较象素点的窗口坐标下Z值与深度缓存值,从而将隐藏直线段消除,记录显示线段,并窗口坐标由三维换为二维。

3、消除显示缓存,重新显示二维窗口坐标下的可视线段。

这样处理,一方面极大地简化了Z缓存计算,使普通编程人员能胜任高级三维CAD软件设计,消隐显示质量高;另一方面获得的可视线段,便于纯Windows图形打印,大大地增强了OpenGL图形打印能力;此处还可便于三维图形标注。

计算机图形学 消隐

计算机图形学 消隐
第十一讲 面消隐
?基本概念 ?提高消隐算法效率的常见方法 ?画家算法 ?Z缓冲器算法 ?扫描线Z缓冲器算法 ?区域子分算法 ?光线投射算法
-
基本概念
产生真实感的方法之一: 反映三维场景中的相互遮挡关系
面消隐与线消隐
表面模型与线框模型 物体表面:平面与曲面 面消隐对象: 由平面多边形构成的多面体
-
基本概念
2)然后按照从表头到表尾的顺序逐个绘制物 体。
-
画家算法
关键:如何对场景中的物体按深度(远 近)排序,建立深度优先级表? 一种针对多边形的排序算法如下:
假定在规范化投影坐标系uvn中,投影方向是n 轴的负向,因而n坐标大距观察者近。记nmin(P) nmax(P)分别为多边形P的各个顶点n坐标的最小 值和最大值,算法步骤如下:
-
提高消隐算法效率的常见方法 1
利用连贯性
物体连贯性 面的连贯性 区域连贯性 扫描线的连贯性 深度连贯性
-
提高消隐算法效率的常见方法 2
将透视投影转换成平行投影 消隐与透视关系密切,体现有:
1)消隐必须在投影之前完成; 2)物体之间的遮挡关系与投影中心(视点)的选 取有关; 3)物体之间的遮挡关系与投影方式有关
-
提高消隐算法效率的常见方法 3
图12.3 加入面消隐步骤的三维图形显示 流程图 p285 (参见图8.30 p162)
图12.4 先将透视投影转换成平行投影,南 后再消隐 p285 (参见图8.33 p167)。 (避免除法,提高了效率)
-
提高消隐算法效率的常见方法 4
包围盒技术
定义:一个形体的包围盒指的是包围它的简单形体。
-
提高消隐算法效率的常见方法 6
复杂度比较:

计算机图形学 第7章消隐 - 课程教学辅导资料

计算机图形学 第7章消隐 - 课程教学辅导资料



假设场景中有k个物体,平均每个物体表面由h个多 边形构成,显示区域中有m x n个像素,则: 算法的复杂度为:O((kh)*(kh))
计算机图形学
Z-Buffer算法

由来: 帧缓冲器 – 保存各像素颜色值 Z缓冲器 --保存各像素处物体深度值
Z缓冲器中的单元与帧缓冲器中的单元一一对应
屏幕 帧缓冲器 Z缓冲器


nu :当沿扫描线u递增一个像素时,多边形所在平面n坐标的增 量,对方程au+bv+cn+d=0来说,nu =-a/c nv :当沿扫描线v递增一个像素时,多边形所在平面n坐标的增 量,类似,nv =-b/c (c!=0) nextEP:指向下一个边对结构的指针。

计算机图形学
扫描线Z-buffer算法--活化边表对
扫描线Z-buffer算法--多边形分类表

多边形分类表(PT):对多边形进行分类的一维数 组,长度等于绘图窗口内扫描线的数目。若一个多 边形在投影平面上的投影的最小v坐标为v,则它属 于第v类。
计算机图形学
扫描线Z-buffer算法--活化多边形表

活化多边形表(APL): 记录投影与当前扫描线相 交的多边形。

计算机图形学
扫描线Z-buffer算法--边的分类表

边的分类表(ET):当一个多边形进入活化多边形表时,需为其建立 一个边分类表(ET)。这里,ET与其在扫描转换多边形的扫描线算 法中的含义相同,是对多边形的非水平边进行分类的一维数组,长度 等于绘图窗口内扫描线的数目。若一条边在投影平面上的投影的下端 点的v坐标为v,则将该边归为第v类。
计算机图形学
扫描线Z-buffer算法

图形消隐课程设计

图形消隐课程设计

图形消隐课程设计一、课程目标知识目标:1. 学生能够理解并掌握三维图形消隐的基本概念和原理;2. 学生能够识别并分类常见的三维图形消隐方法;3. 学生能够运用所学的消隐方法,分析和解决实际问题。

技能目标:1. 学生能够运用几何画板或其他绘图工具,绘制并展示三维图形消隐的过程;2. 学生能够运用计算工具,进行简单消隐算法的编程与实现;3. 学生能够通过小组合作,共同探讨并解决消隐问题,提高团队协作能力。

情感态度价值观目标:1. 学生能够认识到图形消隐在现实生活中的广泛应用,增强对数学学科的兴趣和认同;2. 学生在学习过程中,培养勇于尝试、克服困难的积极态度;3. 学生通过图形消隐的学习,体会数学美感,提高审美能力。

分析课程性质、学生特点和教学要求:本课程为初中数学课程,旨在让学生掌握图形消隐的基本知识和技能。

学生正处于好奇心强、求知欲旺盛的阶段,对新颖的图形消隐现象感兴趣。

因此,课程目标应具体、可衡量,注重实践操作和团队合作,以激发学生的学习兴趣和主动性。

课程目标分解为具体学习成果:1. 学生能够理解并解释图形消隐的基本概念;2. 学生能够独立绘制并展示三种常见的消隐方法;3. 学生能够编写简单的消隐算法,并运用计算工具实现;4. 学生能够通过小组合作,解决实际问题,提高团队协作能力;5. 学生能够体会到图形消隐的美感和数学价值,激发对数学学科的兴趣。

二、教学内容1. 引入图形消隐的概念,介绍其在现实生活中的应用,如建筑设计、游戏制作等;- 教材章节:第三章第四节“图形的消隐”2. 详细讲解三种常见图形消隐方法:隐藏面消除法、背面消隐法和深度缓冲消隐法;- 教材章节:第三章第五节“消隐方法”3. 通过几何画板演示图形消隐过程,让学生直观感受消隐效果;- 教材章节:第三章第六节“消隐效果的演示”4. 编写简单消隐算法,运用计算工具实现图形消隐;- 教材章节:第三章第七节“消隐算法及其实现”5. 小组合作,探讨并解决实际问题,如建筑物消隐、三维模型消隐等;- 教材章节:第三章实践活动“图形消隐的应用”6. 分析图形消隐在数学、艺术和科技领域的价值,提高学生的审美能力;- 教材章节:第三章总结“图形消隐的价值与意义”教学内容安排与进度:第一课时:引入图形消隐概念,介绍应用场景;第二课时:讲解三种消隐方法,演示消隐效果;第三课时:编写简单消隐算法,实现图形消隐;第四课时:小组合作,解决实际问题;第五课时:分析图形消隐的价值,进行课程总结。

计算机图形学-第7章-消除隐藏线和隐藏面

计算机图形学-第7章-消除隐藏线和隐藏面

可能的四种形体
隐藏线和隐藏面
不可见的线和面分别称为隐藏线和隐藏面。 隐藏线和面不仅仅有形体自身的,而且还 有形体之间互相遮挡的。消除它们即称为 消除隐藏线和消除隐藏面。
形体之间互相遮挡的隐藏线
当我们显示线条图或用笔式绘图仪或其 它线画设备绘制线条图形时,要解决的 主要是消除隐藏线的问题。而当用光栅 扫描显示器显示物体的明暗图形时,就 必须要解决消除隐藏面的问题。
设n={A,B,C},而
n
A ( y j )(zi z j ) i 1 n
B (zi z j )(xi x j ) i 1 n
C (xi x j )( yi y j ) i 1
式中若 i n,则j=i+1;否则i=n,j=1。 以上算法适合任何平面多边形。
非平面但接近平面的多边形的最佳逼近平面 的法矢量也可用此算法求出。为避免在程序 中出现两种计算平面外矢量的方法,建议凸 多边形也采用该算法计算外法矢量。多边形 所在平面的方程可写成
Ax By Cz D 0
其中 D ( Ax0 By0 Cz0 ,)
(x0 , y0 , z0 ) 为平面上任意一点。
7.2.2 深度检验
深度检验是比较位于同一条投射线的若干 个点的深度坐标(一般为z坐标),以确定 哪个点是可见的,将可见点表示出来。消 隐时必须进行深度检验。一般将需要比较 的各点的z坐标按递增或递减排序,也可从 中选出最大或最小的z坐标。至于选最大或 最小与所选的坐标系有关。
7.2.1 平面多边形的外法矢量
为了判别物体上各表面是朝前面还是朝后
面,需求出各表面(平面多边形)指向体外
的法矢量。设物体在右手坐标系中,多边
形顶点按逆时针排列。当多边形为凸多边
形时,则其法矢可取成多边形相邻两边矢

计算机图形学-消隐

计算机图形学-消隐
面。
n G
I
F
H A
E
B
C
D
18
共四十四页
2. 深度 测试 (shēndù)
在观察坐标系下判断线段与多边
形的前后关系。快速排除不需
求交的情况。
如:多边形完全在线段之后(线
COP
段的两端(liǎnɡ duān)点均比多边形
靠近视点),则线段完全可见,
无需就线段和多边形的遮挡
关系进行进一步判断。
19
画等领域,所生成的图形一般具有连续色调,并 能产生阴影、透明、表面纹理及反射、折射等视 觉效果。不过这类算法比较慢。产生一幅图可能 需要几分钟甚至几小时。 所以,在进行消隐算法的设计时,应在计算速度和图 形细节(xìjié)之间进行权衡,任何一种算法都不能兼顾两者。
9
共四十四页
消隐(xiāo yǐn)
由来:画家的作画顺序暗示出所画物体 之间的相互(xiānghù)遮挡关系。
算法基本原理:
1)先把屏幕置成背景色;
2)将场景中的物体的各个面按其距观察点的远近进行排序,结果放在一 张线性表中;(线性表构造:距观察点远的优先级低,放在表头;距 观察点近的优先级高,放在表尾 )该表称为深度优先级表。
3)然后按照从远到近(从表头到表尾)的顺序逐个绘制物体表面。
Zmax(Q),但是如果按照优先级表中顺序(P排在Q之前)将P,Q分别写入 帧缓冲器中期的话,则Q将部分地遮挡P,而事实上是P部分地遮挡Q。 ③ 再考虑图3等情况。这时需进行投影重叠测试。
对造型的要求:
要求造型系统中有面的信息,最好有体的信息;
如果存在多个实体,它们互不相交; 求交的线段和面(多边形)在空间不相交; 多边形网格模型可以满足要求。

图形的消隐技术

图形的消隐技术
要求,会 有不同消隐算法与之相适应。 重叠测试 许多物体的投影是由若干个多 边形构成的,将这些多边形两两判别, 看它们是否有重叠部分,如果不重叠, 说明它们肯定不互相遮挡。这种方法 就叫重叠测试。
两个多边形不重叠的条件:
A在左 XAmax ≤ Xbmin A在右 XAmin ≥ XBmax
A在下 YAmax ≤ YBmin A在上 YAmin ≥ YBmax
外接矩形
Y Ymax
Ymin X Xmin Xmax
重叠测试的几种典型情况
y
(a)
(b)
O
(c)
(d) x
包含性测试 测试点与多边形的包含关系有两 种方法: 1.射线交点数算法 2.夹角求和算法
射线交点数算法
B’ D’ E’
A’ A’
(图B)
C’
B’
C’
P’
D’ E’
P’
(图A)
由 P’ 向任意方向作一条射线,求射线与多边形的交点数。 交点为偶数则 P’在多边形之外,交点为奇数则 P’在多边形之内。 通常,射线作成与坐标轴平行,例如平行于 Y 轴。
射线过顶点(内、外部) 射线与多边形的边重合
夹角求和算法
1 P’分别与 A’B’C’D’E’连 线 2 令α1 α2 α3 α4 α5 ∠ A’P’B’ ∠ B’P’C’ ∠ C’P’D’ ∠ D’P’E’ ∠ E’P’A’
图形的消隐技术
机自6班 艾纯财 20112496
消隐的概念与作用
在使用显示设备描绘物体的图形时, 必须把三维信息经过某种投影变换, 在二维的显示表面上绘制出来。例如, 轴测图和透视图,就是通过轴测变换 或透视变换,求出所有顶点的投影点, 再把各点连结起来。
下图中第一个图形代表的是后边哪一 个呢?

计算机图形学消隐

计算机图形学消隐
计算机图形学
第7章 消 隐
第7章 消 隐
• • • • • • 消隐的概述 多面体的消隐算法 深度缓冲器算法 扫描线算法 画家算法 光线追踪算法(Ray Casting)
消隐概述
• 什么是消隐? • 消隐的分类有哪些? • 消隐的基本原则有哪些?
消隐的概述
• 绘制线框图时应消除隐藏线,绘制真实感图 形时应消除隐藏面。 • 未经消除隐藏线和隐藏面的立体图往往存在
图7-9 任意多面体的隐藏情况
深度缓冲器算法
• • • • 算法基本思想是什么? 算法是怎样描述的? 深度值如何计算? 深度缓冲器算法特点是什么?
多面体的消隐算法
• 算法实现的一般步骤 • 根据表面的数据结构,取顶点数据,计算表面 的外法线矢量。 • 计算外法线在投影方向上的分量的值。 • 根据分量的值判断表面的可见性。 • 若表面可见画出该表面,否则处理下一个表面。
多面体的消隐算法
• 任意多面体的消隐 • 对于任意平面立体必须寻求适当的消隐算法。 因为任意平面立体则不同,除了有全部可见和 全部不可见的棱边外,还有部分可见的棱边如 图7-9 。
消隐的概述
• 图像空间消隐算法 图像空间是物体显示时所在的屏幕坐标空 间。 • 算法描述如下: for(窗口中的每一个像素) { 确定距视点最近的物体,以该物体表面的 颜色来显示像素; }
消隐的概述
• 消隐基本原则
―排序
排序的目的主要是判别消隐对象的体、面、边和点与观察 点几何距离的远近。如果一个物体离观察点越远,越有可能被 离观察点近的物体所遮挡,如图7-4所示。但这不是绝对的,例 如,不在同一观察线方向的两个物体不会有遮挡关系,如图7-5 所示。
• 凸多面体消隐的基本原理是什么 • 凸多面体消隐的算法思想是什么 • 任意多面体的消隐算法是什么
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档