电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

图形学课件cs92010章节

52页
  • 卖家[上传人]:E****
  • 文档编号:90923431
  • 上传时间:2019-06-20
  • 文档格式:PPT
  • 文档大小:791.50KB
  • / 52 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第九章 动态消隐,本章学习目标 Z-buffer算法 画家算法,本章内容,9.1 图形的数据结构 9.2 消隐算法分类 9.3 隐线算法 9.4 隐面算法 9.5 本章小结 9.6 习题,9.1 图形的数据结构,W.K.Giloi在其著作Interactive Computer Graphics中提出: Computer Graphics=Data Structure +Graphics Algorithms+Language,9.1.1 图形的几何信息和拓扑信息 9.1.2 基本图形的数据结构 9.1.3 立体表示模型,9.1 图形的数据结构,9.1.1 图形的几何信息和拓扑信息,几何信息:描述几何元素空间位置的信息。 拓扑信息:描述几何元素之间相互连接关系的信息。 描述一个物体不仅要有几何信息的描述而且还要有拓扑信息的描述。因为只有几何信息的描述,在表示上存在不惟一性。如图9-1所示的五个顶点,其几何信息已经确定,如果拓扑信息不同,则可产生图9-2和9-3所示的两种不同图形。,9.1.2 基本图形的数据结构,在三维坐标系下,描述一个物体不仅需要顶点表,而且还需要边表和面表,才能完全

      2、表达清楚。,立体的数据结构,表9-1 立方体顶点表,表9-2 立方体边表,表9-3立方体面表,9.1.3 立体表示模型,计算机三维模型的描述经历了从线框模型、表面模型到实体模型的发展,所表达的几何体信息越来越完整。,1.线框模型(Wireframe Model) 线框模型是计算机图形学中表示立体最早使用的模型。线框模型只是用几何体的边线来表示立体的外形,就如同用边线搭出的框架一样,线框模型中没有表面、体积等信息。线框模型只使用顶点表和边表两个数据结构就可以描述面点之间的拓扑关系。图9-5所示是一个典型的立方体线框模型。线框模型的优点是可以产生任意方向视图,视图间能保持正确的投影关系。线框模型的缺点也很明显,因为所有棱边全部绘制出来,理解方面容易产生二义性,如图9-6所示。从原理上说,线框模型不能划分有限元网格、不能进行两个面的求交运算。,立体线框模型表示,线框模型表示的二义性,2.表面模型(Surface Model) 表面模型是利用立体的外表面来构造模型,就如同在线框模型上蒙上了一层外皮,使立体具有了一定的轮廓,可以进行消隐处理,但表面模型仍缺乏体积的概念,是一个立体的空壳。与线框模

      3、型相比,表面模型增加了一个面表,用以记录边面之间的拓扑关系。表面模型的优点是可以进行面着色,隐藏面消隐,以及表面积计算,有限元网格划分等。 缺点:无法进行立体之间的相交运算。立方体表面模型如图9-7所示,立方体表面模型表示,3.实体模型(Solid Model) 几何模型发展到实体模型阶段,如同在立体表面模型的内部进行了填充,使之具有了如体积和重量等特性,更能反映立体的真实性,这时的立体才具有“体”的概念。实体模型与表面模型的不同之处在于确定了表面的哪一侧存在实体。在表面模型的基础上可以采用有向棱边隐含地表示出表面的外法矢方向,常使用右手法则取向,四个手指沿闭合的棱边方向,大拇指方向与表面外法矢量方向一致。拓扑合法的立体在相邻两个面的公共边界上,棱边的方向正好相反,如图所示。,立方体实体模型表示,实体模型只需将面表改成环表形式,就可确切地分清体内体外,表9-3中边的顺序已经符合这一要求,也可以作为实体模型的面表。实体模型和线框模型、表面模型的根本区别在于其数据结构不仅记录了全部几何信息,而且记录了全部点、线、面、体的拓扑信息。实体模型常采用集合论中的并、交、差等运算来构造复杂形体。,9

      4、.2 消隐算法分类,无论多么复杂的空间物体,沿视线方向上都只能看到一部分表面,其余的表面背向观察者不可见。计算机图形学的一个重要任务就是对空间物体的表面进行可见性检测,绘制出可见边线和表面。经过消隐后得到的图形称为消隐图。,根据消隐方法的不同,消隐算法可分为两类: 1.隐线算法。用于消除物体上不可见的边界线。隐线算法主要是针对线框模型提出的,它只要求画出物体的各可见棱边。 2.隐面算法。用于消除物体上不可见的表面。隐面算法主要针对表面模型提出的,它不仅要求画出物体的各个可见棱边,而且还要求填充各个表面。,隐线算法,隐面算法,计算机图形学的创始人Southerland根据消隐空间的不同,将消隐算法分为三类: 1.物空间消隐算法:在描述物体的坐标系空间中进行消隐。 2.像空间消隐算法:在物体投影后的二维图像空间中进行消隐。 3.物像空间消隐算法:在描述物体的坐标系空间和图像空间同时进行消隐。,9.3 隐线算法,物体的线框模型消隐一般在物空间中进行。物空间消隐算法是根据边界线的可见性检测条件,判断哪些边界线是可见的,哪些边界线是不可见的,在屏幕上只绘制可见边界线。,9.3.1凸多面体消隐算法

      5、,在消隐问题中,凸多面体消隐是最简单和最基本的情形。凸多面体具备这样的性质:连接立体上不同表面的任意两点的直线完全位于该凸多面体之内。凸多面体由凸多边形构成,其表面要么完全可见,要么完全不可见。凸多面体消隐算法的关键是给出测试其表面边界线可见性的判别式。 事实上,对于凸多面体的任一个面,可以根据其外法矢量和视矢量的夹角来进行可见性检测。如果两个矢量的夹角090时,表示该表面可见;如果90180时,表示该表面不可见。,Z,X,Y,D,F,E,C,A,N,S,B,图9-11 三棱柱,以图9-11所示的立方体为例来进行具体说明。 面ADFC的外法线矢量N=ADDF;(背面) 面DEF的外法线矢量N=DEEF; (顶面) 面ACB的外法线矢量N=ACCB; (底面) 已知各顶点的三维坐标时,可求出各表面的外法线矢量。,H(xh,yh,zh),G(xg,yg,zg),E(xe,ye,ze),F(xf,yf,zf),图9-12 计算表面法矢量,在图9-12中取前面EFGH上的一点E(xE,yE,zE),其外法矢量为N,视矢量为S,外法矢量和视矢量的夹角为。 首先借助于点F( xF,yF,zF)和点

      6、G(xG,yG,zG)来计算面的外法矢量。 边矢量EF的三个分量为: FxxFxE;FyyFyE;FzzFzE; 计算边矢量EG的三个分量为: HxxGxE;HyyGyE;HzzGzE;,面EFGH的外法矢量为两个边矢量的矢量积,外法矢量的三个分量为: Nx ; Ny ; Nz ; 外法矢量表示为: (9-1) 式中, i,j,k分别为三维坐标系的3个单位矢量。 给定视点位置球面坐标表示为:( , , ),其中:R为视径, , 。,则对于前面EFGH上的E(xE,yE,zE)点的视矢量分量的计算公式为: 视矢量表示为: (9-2) 式中, i,j,k分别为三维坐标系的三个单位矢量。 表面外法矢量和视矢量的数量积为:,(9-3),式(9-3)中分母为正,所以cos的正负取决于表面外法矢量和视矢量的数量积的分子: 。 凸多面体表面可见性检测条件为: 当090时, 0,立方体表面可见,绘该表面多边形;当=90时, =0,表面外法矢量与视矢量垂直,立方体表面多边形退化为一条直线,绘出该直线;当90180时, 0,立方体表面不可见,不绘制该多边形。,立方体消隐前的透视变换图如图9-13所示,消隐

      7、后的透视变换图如图9-14所示。,图9-13 消隐前的立方体 图9-14 消隐后的立方体,9.4 隐面算法,物体的表面模型输出一般在像空间中进行消隐。像空间消隐算法属于像素级算法,以屏幕像素为采样单位,确定投影于每一像素的可见表面颜色区域,并将可见表面颜色颜色作为该像素的显示颜色。隐面算法主要包括:Z-Buffer算法、画家算法、区域采样算法等。本节主要介绍最著名的Z-Buffer算法和画家算法。,9.4.1 Z-Buffer算法,Catmull在1974年提出了Z-Buffer算法。在物空间内不对立体进行可见性检测,每个面的像素点均以指定颜色全部绘制出来,在像空间中根据深度值确定最终绘制的立体各个表面的像素点颜色。Z-Buffer算法属于像空间消隐算法。,Z-Buffer算法也称深度缓冲算法,通常x,y代表屏幕坐标,而z则用来表示立体上各个面的深度,故名Z-Buffer算法。建立三维坐标系如图9-19所示,三维右手坐标系中心位于立方体体心处,x轴向右,y轴向上,z轴从体心指向观察者,xyz形成右手坐标系。观察者的视线方向沿着z轴负向,指向xoy坐标面。对于图示立方体,z轴与立方体的前

      8、面交于(x,y,z1),与立方体的后面交于(x,y,z2)。前面和后面在屏幕上的投影坐标(x,y)相同,但z1z2,(x,y,z1)离观察者近,(x,y,z2)离观察者远。对于投影像素点(x,y),前面像素点(x,y,z1)的颜色将覆盖后面像素点(x,y,z2)的颜色,显示结果为前面像素点(x,y,z1)的RGB颜色。,这样Z-Buffer算法需要建立两个缓冲器:一个是深度缓冲器,用于记录立体上每一个像素的深度值,初始化为立体的最小深度值(z坐标)。设屏幕像素点如图9-20所示,则深度缓冲器如图9-21所示;另一个是帧缓冲器,用于记录立体上每个像素点的颜色值,初始化为屏幕的背景色。帧缓冲器如图9-22所示。Z-Buffer算法对立体的各个表面全部进行采样,将采样点变换到屏幕坐标系的图像空间,并记录其深度z坐标值。根据采样点在屏幕上的投影位置,将其深度与已存储在帧缓存器中相应像素点处的深度值进行比较。如果新采样点的深度值大于原可见点的深度值,表明新采样点更靠近观察者,遮住了原采样点,则用新采样点处的颜色值更新帧缓存器中相应采样点处的颜色值,同时用新采样点的深度值更新深度缓存器中的采样点的

      9、深度值;否则,不作更改。,图9-20 屏幕像素点 图9-21深度缓冲器 图9-22帧缓冲器,Z-Buffer算法 实现的难点是如何计算采样点的深度值z(x,y)。对图9-19所示的静止立方体,立方体前面和后面都平行于xoy坐标面,上面、下面、左面和右面四个表面皆与屏幕坐标系的xoy面垂直,立方体的投影为正方形,这时,前面和后面的深度值很容易计算,立方体的消隐结果为正方形。本节讲解的是旋转立方体的动态Z-Buffer消隐算法。当立方体处于图9-23所示的位置时,六个面皆为都不与屏幕平行,这时需要根据每个面的平面方程计算其上各个像素点深度值,这里需要用到第四章已经讲解的有效边表算法来访问面上的每一个像素点进行消隐。,视线方向,对于图9-24所示的立方体表面,其平面一般方程为: (9-9) 式中系数A,B,C是该平面的一个法矢量的坐标,即,根据表面顶点的坐标值可以计算出两个边矢量: 矢量 矢量 根据两个边矢量的叉积,可求得系数A,B,C: 将A、B、C和点(x1,y1,z1)代入方程(9-9),得:,这样,从方程(9-9)可以得到当前像素点(x,y)处的深度值: 这里,如果C0,说明多边形表面的法矢量与z轴垂直,在xoy面内的投影为一条直线,在算法中可以不予以考虑。 如果已知扫描线yi与多边形相交的最左边的像素点坐标为(xi,yi)处的深度值z(xi,yi),其相邻点(xi+1,yi)处的深度值为z(xi+1,yi)。,计算出多边形每个面上各个像素点的深度值后,就可以使用Z-Buffer算法进行消隐,旋转立方体消隐效果如图9-25所示。使用Z-Buffer算法可以绘制带有交叉面的立体

      《图形学课件cs92010章节》由会员E****分享,可在线阅读,更多相关《图形学课件cs92010章节》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.