计算机图形学课件第九章建模与消隐PPT课件下载推荐.ppt
《计算机图形学课件第九章建模与消隐PPT课件下载推荐.ppt》由会员分享,可在线阅读,更多相关《计算机图形学课件第九章建模与消隐PPT课件下载推荐.ppt(88页珍藏版)》请在冰豆网上搜索。
描述一个物体不仅需要几何信息的描述而且需要拓扑信息的描述。
因为只有几何信息的描述,在表示上存在不惟一性。
图9-1所示的5个顶点,其几何信息已经确定,如果拓扑信息不同,则可产生图9-2和9-3所示的两种不同图形。
图9-1五个顶点图9-2五角星连线图9-3五边形连线,对物体线框信息的描述不仅包括顶点坐标,而且包括每条边是由哪些顶点连接而成。
对于物体表面信息的描述包括每个表面是由哪些边连接而成,或是由哪些顶点环绕而成。
6,9.1.2三维物体的数据结构,在三维坐标系下,描述一个物体不仅需要顶点表描述其几何信息,而且还需要借助于边表和面表描述其拓扑信息,才能完全确定物体的几何形状。
制作多面体或曲面体的旋转动画时,常将物体的中心假设为旋转中心。
假定立方体中心位于三维坐标系原点,立方体的边与坐标轴平行,且每条边的长度为2a。
立方体模型如图9-4所示。
立方体是凸多面体,满足欧拉公式:
V+F-E=2式中:
V是多面体的顶点数,F是多面体的面数,E是多面体的边数,图9-4立方体数学模型,7,表9-1立方体顶点表,8,表9-2立方体边表,9,表9-3立方体面表,10,9.1.3实体的描述模型,线框模型(wireframemodel)是计算机图形学中表示物体最早使用的模型,而且一直在使用。
线框模型只是用几何体的边线来表示物体的外形,没有表面和体积等概念。
线框模型是表面模型和实体模型的基础,只使用顶点表和边表两个数据结构就可以描述。
图9-5所示为立方体线框模型。
优点:
可以产生任意方向视图,视图间保持正确的投影关系,常用于绘制三视图或斜轴测图等。
缺点:
所有棱边全部绘制出来,容易产生二义性,如图9-6所示,线框模型,11,图9-5立方体线框模型,图9-6线框模型二义性,12,表面模型(surfacemodel)是利用物体的外表面来构造模型,就如同在线框模型上蒙上了一层外皮,使物体具有了一层外表。
表面模型仍缺乏体积的概念,是一个物体的空壳。
与线框模型相比,表面模型增加了一个面表,用以记录边面之间的拓扑关系。
优点:
可以对表面进行平面着色或光滑着色、可以为物体添加光照或纹理等。
无法进行实体之间的并交叉运算。
图9-7表示的是双三次Bezier曲面的网格模型。
图9-8表示的是双三次Bezier曲面的表面模型。
在图9-8中,Bezier曲面没有围成一个封闭的空间,只是一张很薄的面片,其表面无内外之分,哪面是正面、哪面是反面,没有给出明确的定义。
表面模型,13,图9-7双三次Bezier线框模型,图9-8双三次Bezier表面模型,14,实体模型(solidmodel)是在封闭的表面模型内部进行了填充,有了如体积和重量等特性,能反映立体的真实性,立体才具有“体”的概念。
它的内部和外部的概念,定义了在表面模型的哪一侧存在实体。
它的表面有正面和反面之分。
如图9-9所示。
用有向棱边隐含地表示表面的外法向量方向。
常用右手准则定义,拓扑合法的物体在相邻两个面的公共边界上,棱边的方向正好相反,如图9-10所示。
与表面模型数据结构的差异。
将面表的顶点索引号按照从物体外部观察的逆时针方向的顺序排列,可确切地分清体内体外。
与线框模型、表面模型的区别。
记录了顶点的信息,以及线、面、体的拓扑信息。
实体模型常采用集合论中的并、交、差等运算来构造复杂实体。
3.实体模型,15,(a)正面(b)反面图9-9立方体表面的正面和反面,图9-10立方体实体模型,一般情况下,使用顶点表、边表和面表3张表可以方便地检索到物体的任意一个顶点、任意一条边和任意一个表面,而且数据结构清晰。
实际建模中,实体模型采用了有向棱边,相邻两个表面上共享的一条棱边的定义方向截然相反,导致无法确定棱边的顶点连接顺序,因而放弃边表,仅使用顶点表和面表来表示物体的几何模型。
且面表中按照表面法矢量向外的方向遍历多边形顶点索引号,表明处理的是物体的正面。
仅用顶点表和面表的缺点是物体的每条边被重复绘制2次。
16,9.1.4双表结构,不管是三维凸多面体还是光滑物体,只要给出顶点表和面表数据文件,就可以正确地确定数据结构。
在双表结构中,立方体的顶点表依然使用表9-1。
面表需要重新按顶点索引号设计。
图9-11为图9-4所示立方体的展开图。
图9-11立方体的展开图,17,表9-4根据立方体的展开图重新设计了面表结构。
表9-4立方体面表,18,1定义三维顶点类,如图9-12所示,包括顶点的三维坐标(x,y,z),图9-12三维顶点类,19,2定义表面类,如图9-13,表面类包括表面的顶点数和表面的顶点索引号。
SetNum()用于动态设置表面的顶点数,常用于处理3个顶点的三角形面片或4个顶点的四边形面片。
图9-13表面类,20,3读入立方体的点表,在程序中定义ReadVertex()函数读入物体的顶点表如图9-14,图9-14读入立方体的顶点表,21,4读入立方体的面表,在程序中定义ReadFace()函数读入物体的面表,如图9-15,图9-15读入立方体的面表,22,9.1.5常用物体的数学模型,正多面体是由若干个全等的正多边形围成,并且相交在各个顶点上的棱边数都相等的凸多面体。
正多面体只有正四面体、正六面体、正八面体、正十二面体和正二十面体五种,如图9-16所示。
表9-5给出了其几何信息。
这五种多面体统称为柏拉图多面体。
柏拉图多面体属于凸多面体。
柏拉图多面体,图9-16柏拉图多面体,23,图9-17柏拉图多面体对偶多面体,在几何学中,若一种多面体的每个顶点均能对应到另一种多面体上的每个面的中心,二者互称为对偶多面体。
24,柏拉图多面体对偶性,25,表9-5柏拉图多面体几何信息统计,26,1正四面体,建立正四面体的伴随立方体可以很容易地确定正四面体的顶点表和面表。
x,y,z,V1,O,V3,V2,V0,图9-18正四面体几何模型,正四面体的外接球和其伴随立方体的外接球是同一个球;
正四面体外接球的直径就是立方体的对角线。
假设立方体的半边长为a,令V0点为(a,a,a),则正V1V2V3顶点表见表9-6。
27,表9-6正四面体顶点表,表9-7正四面体面表,28,正四面体的外接球面的半径为,展开图如图9-19所示,面表见表9-7。
图9-19正四面体展开图,29,正四面体,30,2正八面体,设正八面体的外接球面的半径为r,6个顶点都取自坐标轴,并且两两关于原点对称,如图9-20所示,顶点表见表9-8。
根据图9-21所示的正八面体展开图可以得到正八面体的面表,见表9-9。
V0,V5,V2,V3,V4,V1,x,y,z,O,图9-20正八面体几何模型,31,表9-8正八面体顶点表,32,图9-21正八面体展开图,表9-9正八面体面表,33,正八面体模型,34,3正十二面体,建立正十二面体的坐标系如图9-22所示。
三个互相垂直的矩形是黄金矩形。
黄金矩形就是矩形的短边与长边之比为:
被称为黄金分割数,简称黄金数。
图9-22正十二面体坐标系,35,黄金矩形的顶角位于十二面体的十二个表面中心。
设黄金矩形的短边半边长为b,则黄金矩形的长边半边长为ab/。
表9-10为正十二面体的顶点表。
表9-10正十二面体顶点表,接下页,36,37,图9-23正十二面体展开图,38,表9-11正十二面体面表,39,正十二面体模型,40,4正二十面体,图9-24中三个黄金矩形两两正交,这些矩形的顶角是正二十面体的十二个顶点。
把每一个黄金矩形与一个坐标轴对齐,得到表9-12的顶点表。
由图9-25所示的正二十面体展开图得到正二十面体的面表,见表9-13。
图9-24用黄金矩形定义正二十面体,41,表9-12正二十面体顶点表,42,图9-25正二十面体展开图,43,表9-13正二十面体面表,44,表9-13正二十面体面表,45,表9-13正二十面体面表,46,正二十面体模型,47,多面体是由平面多边形组成的物体,多面体没有方程表示形式,用顶点表和面表直接给出数据结构定义。
对于球、圆柱、圆锥、圆环等光滑物体,表面有确定的参数方程表示形式。
绘制光滑物体时,需要进行网格划分,即把光滑曲面离散为平面多边形表示,这些多边形一般为平面四边形或三角形网格。
光滑物体的网格顶点表和面表使用物体的参数方程离散计算后得到。
2.光滑物体,48,1球面,球心在原点,半径为r的球面三维坐标系如图9-26所示。
球面的参数方程表示为,图9-26球面的数学模型,(9-2),49,假定将球面划分为n14个纬度区域,n28个经度区域。
则纬度方向的角度增量和经度方向的角度增量均为=45,示例球面的网格模型如图9-27所示。
图9-27示例球面,50,球面共有(n1-1)*n2+226个顶点。
顶点索引号为025。
北极点序号为0,然后从z轴正向开始,绕y轴按逆时针方向确定位于第一条纬度线上与各条经度线相交的点,如图9-28和图9-29所示,最后一个顶点为南极点。
北极点坐标为V0(0,r,0),南极点坐标为V25(0,-r,0)。
图9-28北半球顶点编号,图9-29南半球顶点编号,51,面表用二维数组定义,第一维表示纬度自北极向南极递增的方向,第二维表示在同一纬度线上从z轴正向开始,绕y轴的逆时针方向。
如图9-30和图9-31所示。
所有网格的顶点排列顺序应以小面的法线指向球面外部的右手法则为准。
图9-30北半球表面编号图9-31南半球表面编号,52,球面网格化的方法分为:
地理划分法如图9-32所示。
递归划分法原理如图9-33所示,效果如图9-34所示。
图9-32地理划分法效果图,图9-33递归划分法效果图,53,(a)递归深度n0(b)递归深度n1,(c)递归深度n2(d)递归深度n3图9-34球面递归划分法效果图,54,2圆柱面,假定圆柱的中心轴与y轴重合,横截面是半径为r的圆,圆柱的高度沿着y轴方向从0拉伸到h,三维坐标系原点O位于底面中心,如图9-35所示。
如果不考虑顶面和底面,圆柱侧面的参数方程为,图9-35圆柱面的数学模型,(9-3),55,圆柱的离散化表示如图9-36所示。
假定圆柱的周向网格数n18,纵向网格数n23,圆柱网格模型的顶点表的顶点数为:
n1(n21)234。
顶面和底面各有8个三角形网格,侧面有24个四边形网格,圆柱网格模型的面表的面片总数为40。
图9-36示例圆柱,56,示例圆柱面的顶点和表面编号如图9-37图9-39所示。
图9-37圆柱底面的网格划分图9-38圆柱的顶面的网格划分,图9-39圆柱侧面的网格划分,57,适当加大周向和纵向划分的网格数,圆柱面网格模型趋向光滑,透视投影效果如图9-39所示。
图9-40圆柱的网格模型透视效果图,58,3圆锥面,假定圆锥的中心轴与y轴重合,横截面的最大半径为r,最小半径为0,圆锥的高度沿着y轴方向从0拉伸到h,三维坐标系原点O位于底面中心,如图9-41所示。
图9-41圆锥面的数学模型,圆锥侧面的参数方程为,(9-4),59,圆锥侧面的离散化表示如