13.可见性判别、网格划分与消隐处理.pptxVIP

  • 3
  • 0
  • 约3.54千字
  • 约 45页
  • 2019-11-06 发布于广东
  • 举报

13.可见性判别、网格划分与消隐处理.pptx

计算机图形学 第15讲 曲面显示、可见性判别与消隐;为了产生直观的三维显示效果及满足二维工程图需求,需对三维形体进行消隐显示。在形体消隐过程中,首先需将形体的表面(曲面)进行离散,用平面多边形逼近的方法近似表示(多采用三角剖分)。经三角剖分处理后,多边形的面可用三角形的面逼近表示,多边形的边用三角形边的两个端点来定义,最终三维形体表面都生成并记录了完整的多面体离散数据(即显示数据)。;15.1 曲面离散网格生成 15.2 多面体线框显示 15.3 多面体可见性算法 15.4 基于Z-Buffer的可见性 15.5 多边形模型的几何压缩 15.6 OpenGL消隐函数;15.1 曲面离散网格生成;;步骤1——边界离散;步骤4——网格映射;3)平面点集三角剖分|三角网格生成;波前法三角剖分,或者叫前沿推进法;Delaunay三角剖分 ;Lawson算法是Lawson在1977年提出的,该算法思路简单,易于编程实现。 算法原理:首先建立一个大的三角形或多边形,把所有数据点包围起来,向其中插入一点,该点与包含它的三角形三个顶点相连,形成三个新的三角形,然后逐个对它们进行空外接圆检测,同时用Lawson设计的局部优化过程LOP进行优化,即通过交换对角线的方法来保证所形成的三角网为Delaunay三角网。 ;;15.3 三维形体线框消隐显示;1)消隐显示算法分类 消隐的对象是三维多面形体,消隐结果与观察物体有关,也与视点有关。;(c)多面体的轮廓分类;//假设已知凸多面体的面—边—顶点表 Begin 对凸多面体变换使V与Z同向; for(所有的面) { 计算该面法矢的z分量Nz; if(Nz 0) //前向面 { for(该面所有棱边) 画出棱边; } } End; 基本算法思路: (1)为运算方便,对视锥以外的物体应先行裁剪过虑,以减少不必要的运算。 ; (2)后向面上的所有棱边都不可见 (3)对每一个前向面的所有棱边判断可见性,即判断面对线的遮挡关系。 在判断面与线的遮挡关系过程中,要反复地进行线线、线面之间的遮挡关系运算,因此求交计算速度将是关键。; ?(1) 若线段两端点及视点在给定平面同侧(图a),线段可见,转7 ? (2) 若线段投影在平面投影的包围盒之外(图b),线段可见,转7 ; (3)求直线与平面的交点。若无交点(平行且被平面遮档),转4;否则,交点在线段内部或外部,则判断 a)若交点在线段内部,交点将线段分成两段, 与视点同侧的一段可见,转7; 剩余另一段在视点异侧,转4继续判断。 b)若交点在线段外部,转4继续判断。 (4)求剩下线段的投影与平面边界投影的所有交点 根据交点在原直线方程的参数值求出Z值(即深度) 若无交点,转5。; (5)以上所求得的各交点将线段的投影分成若干段,求出第一段中点。 (6)若第一段中点在平面的投影内,则相应的段被遮挡,否则不被遮挡;其他段的遮挡关系可依次交替取值进行判断。(见图d) (7)循环结束。;上述算法为一条边,一个面的情况,对多条边、多各面则通过循环嵌套实现。 如果消隐对象有N条棱,M各平面,当N很大时,用两两求交的方法计算复杂性的O(NΧM)。为了提高算法的效率,需要设法减少求交的工作量,因此相交测试是关键。;画家算法原理 1) 把屏幕置成背景色; 2)物体的各个面按其离视点的远近进行排序,排序结果存在一张深度优先级表中; 3)按照从表头到表尾的顺序逐个绘制各个面。 由于后显示的图形取代先显示的画面,而后显示的图形所代表的面离视点更近,所以由远及近的绘制各面,就相当于消除隐藏面。 这与油画作家作画的过程类似,先画远景,再画中景,最后画近景。由于这个原因,该算法习惯上称为画家算法或列表优先算法。 这种算法重点在于建立深度优先级表。此法可用于线框消隐和简单的浓淡图绘制。 ;遮挡关系判断示意图; 不同消隐算法的关键在于加速计算的策略和方法不同。现在的商用CAD系统消隐算法的正确率与速度也有待提高。 ;15.4 基于Z-Buffer可见性算法; 为了得到屏幕上某象素点所对应的物体上点的颜色,假定作经过该象素点的一条射线,射线平行于观察视线,则射线与多面体

文档评论(0)

1亿VIP精品文档

相关文档