车身论文主题(二):曲面几何造型;网格简化;万细分_第1页
车身论文主题(二):曲面几何造型;网格简化;万细分_第2页
车身论文主题(二):曲面几何造型;网格简化;万细分_第3页
车身论文主题(二):曲面几何造型;网格简化;万细分_第4页
车身论文主题(二):曲面几何造型;网格简化;万细分_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

山东理工大学硕士学位论文第三章√3网格细分方法及其实现(c)边界E-顶点(a)内部E顶点(b)内部V-顶点(d)边界V顶点(e)带边界端点内部边的E顶点图3-6内部E和V点及边界E和V点的细分图谱图3-7Loop细分算法原理图由图3-7可知V,V₂,…,V是经r次细分后的环绕V'点的顶点,那么相应于V'点的新顶点和相应于边V'V',V'V,…,V'V的新边点可分别表示为:将所有的新顶点和新边点求出之后,再把这些新点按一定的规则连接起山东理工大学硕士学位论文第三章√3网格细分方法及其实现来。这些规则是:将每一个原始顶点对应的新顶点与包含该原始顶点的所有边的新边点连接起来,然后将包含该原始顶点的新边点顺次连接起来,这样就构成了新的网格。如图3-7所示,先将新顶点V(+)分别与+)、v₂+)、…、连接成线,然后再将v(+)、v₂r+)、.…、v(r+1)顺次连接起来。如果每一个新顶点和新边点都这样连接,就可以构成新的细分网格。在新网格的基础上,可以继续重复进行上面的计算,直到满足要求为止。图3-8是兔子模型和开口立方体模型的图3-8是兔子模型和开口立方体模型的Loop细分实例。图3-8Loop细分的两个例子,a和c是初始网格,b和d是细分后的模型Loop细分网格面的性质经过一次细分后,所有的内部顶点除特殊点外入射边数目为6,而且在各次细分中特殊点的数目保持不变。特殊点的数目由初始网格的特殊点的多少来决定。每个原始三角形对应4个小三角形。最终的Loop曲面除特殊点外都是C₂连续的,特殊点上则是切平面连续的。3.2√3细分算法LeifKobbelt于2000年提出的√3细分方法是一种适用于任意三角网格的逼近模式。如图3-9所示,√3细分曲面是通过在每个三角面片中插入新面点,然后连接该点与所在三角面片的顶点,再执行边翻转操作而得到的。初始网格经过一次√3细分后,生成新顶点度数为6而原顶点度数保持不变的半规则网格;两次细分后,每个初始三角面片都分裂成九个新的三角面片,即执行了一次三元分裂操作,因此LeifKobbelt将这种细分看作三元分裂的“平方根”,称为√3细分。山东理工大学硕士学位论文第三章√3网格细分方法及其实现分析√3细分的执行在任意三角形网格中,它所有新插入的顶点具有6价,在足够多次细分后旧顶点的价数也没有改变,网格Mk具有大量的区域是规则网格结构,只有少量的区域是非规则的,非规则顶点都不是6价的(如图3-10)图3-10所有顶点都为6价√3细分矩阵的定义是一个正方形矩阵,S映射了一个子网格V∈M与等价子网格S(V)∈M+1。矩阵的每一排是一个用来计算新顶点的位置,矩阵的每一列表明旧的顶点对细分后网格顶点的贡献。通常,V是选用来特定顶点的邻点,例如,顶点p和它的k阶临近点(k邻域)。因为√3细分操作在每一个给定的三角形中插入了新顶点,对于给定的光滑规则的最小的模板必须包括三角形的三个角里,对于对称的原因,对于光滑规则唯一的选择是:即新顶点q是简单的插入到三角形(p.,Pj,pk)的中心。山东理工大学硕士学位论文第三章√3网格细分方法及其实现问题是α的最先选择是什么。通常,系数依赖于p的价S(p)仅仅依赖于1-邻域相对应的顶点p,因此可以设定一个(n+1)×(n+1)的矩阵表明p和他的n邻域到下一细分层次。使得S的特征值更加复杂。图3-11表明了这个问题。另外,对于λ₄的最佳选择是λ₄=A因为细分矩阵的特征值可以解释为一此通过以下公式来定义α:以这个结果作为二次方程的解,并且系数α∈[0,1],最后α,带入(3.8)式中。实际上可以分析两步S=RS²,实际S特征值对应于S的特征值把每一个新面点与原来面的顶点对应的新顶点并与相邻的面的新面点连果继续细分,可以在新的控制网格的基础上重复运用上述算法。如此无限细分下去,该网格就收敛到某个细分曲面上。√3细分方法是通过三角形重心分裂成细分的三角形面,而不是在三条边上插入顶点,因此随后的光滑操作的系数将会反映三维网格的三重对称。同Loop细分和Butterfly细分的1-4分裂虽然细分速度较慢,但是能得到更多层次的多分辨表示,这样如果规定一定的目标网格复杂性,使用√3算法就不容易被超过;同时由于具有更好的局部性,√3细分更适合执行自适应的细分操作,而且不需要通过后处理工作就可以保持网格的一致性。同4-8细分方法相比,√3细分则不需要在细分前进行三角网格的初始化工作。在√3细分方法中,极限曲面能够达到奇异点CI连续外,根据初始网格获取方式的不同,本文制定了两条细分的实现路线。其中第一条是传统的通过实体建模的方式获取初始网格的方法,总体路线(1)首先在现有的CAD软件UG中通过的曲线拉伸和倒角的方法构造一个车身的实体模型,要求该模型大致接近于所设想的汽车的比例,且形状上粗略的接近。(2)通过CAD软件导出为obj格式文件,该文件描述了网格模型的点、线、(3)将obj文件读入细分模块,对网格进行细分计算。细分的次数可以根据实际要求来选择。通过合适次数的细分即可得到汽车车身曲面。(4)细分之后的数据可以通过存储模块储存为obj格式,这样可以直接把山东理工大学硕士学位论文第三章√3网格细分方法及其实现其中数据obj文件的读取、简化模块,细分模块和obj文件存储等几个模Mesh::Addpoint(doublex,doubley,doublez)//添加顶点fPointv(x,y,z,m_pPoints->size());m_pPoints->push_bacreturnm_pPoints->size}Face::Face(vector<int>&facePointsIdx,intidx)m_PointIdxSet:facePointsIdx{this->m_PointIdxSet=facePoiEdge::Edge(intbgPointIdx,intedPointIdx){m_bgPointIdx=bgPoinm_edPointIdx=edPoin}山东理工大学硕士学位论文第三章√3网格细分方法及其实现1网格类Mesh::Mesh(){}步骤2将顶点坐标放入数组,并为当前顶点,三角形和顶点数目建立索引并步骤3遍历每个顶点判断是否为边界顶点,是则不变否则根据算法几何关系计算每个顶点对应的新顶点;步骤4遍历每个面,根据算法几何关系计算每个面对应的新面点;步骤5遍历所有边,判断边界是否为边界边,是则确定边的临面,连接该临面的新面点与该边的两端点,不是则将两临面的新面点分别与边的两端点的新顶点相连,生成新的面;步骤6更新顶点数组及三角形顶点数目的索引,判断连接新顶点并显示细分步骤7如果网格数目达到简化要求,则结束细分;否则更新数据,返回步骤3;步骤8保存细分后的图形。顶点是否是边界顶点的判断是通过顶点的临面的数量,若等于邻边的数量是则为内部点,否则为边界顶点。判断出是边界顶点,即不对改点进行细分,顶点不更新,判断面是边界面,生成新面点后直接与边界顶点相连,因此展示的图形中在边界三角形中形成一个狭长的三角形即使因为新面点与边界顶点的连接生成的。这样,就可以在初始网格设计好边界特征的情况下细分任意次都不会改变边界边的形状。对于边的遍历生成新三角形的方法不用进行边翻转操作,这是一种新的生成√3细分曲面的方法。如图3-13所示,以同一个基础网格开始细分,通过Loop细分获取的网格网格的边界已经改变了初始的形状,山东理工大学硕士学位论文第三章网格细分方法及其实现而通过√3细分算法可以合理保持图形的边界信息,因为图形的边界往往是通过初始网格就限制其形状,通过细分算法细分其内部网格,是内部网格更光顺。设计师根据自己心目中的形状,通过UG软件的草图功能,构建汽车中心轮廓线,生成汽车中心截面图,然后通过实体拉伸功能,拉伸出汽车的形状,然后根据倒角同能,对过去曲面处进行倒角处理,不同的倒角对应生成不同的圆角,生成如图3-14(a),3-14(c)所示的实体模型,然后导出为obj格式文本,obj格式详尽描述了网格的点、线、面的信息。这样便获取了细分造型方法所需要的初始网格。山东理工大学硕士学位论文第三章√3网格细分方法及其实现读入初始网格存入数组并读入初始网格存入数组并N判断是否为边界顶Y遍历所有面求新面遍历所有NY更新数组及图形显N图3-12√3细分算法流程图山东理工大学硕士学位论文第三章√3网格细分方法及其实现图3-13保持边界特征的√3细分算法与loop算法的比较初始网格改变有效控制车身的形状初始网格的获取是通过UG建模生成然后通过导出三角网格的obj格式文件,文件表达了网格的点的信息及面的信息。读入初始网格后,细分最终达到的效果,往往取决于初始网格的形状,因此初始网格的建立是一个细分应用于工业造型的关键。在车身曲面的设计过程中,不同的区域具有不同的曲率半径,有的面的变化比较尖锐而有的地方却缓慢的过渡,如图3-14所示。图3-14某车造型图片合理控制初始网格的倒角,是汽车造型中的重要方面,其半径大小不仅与山东理工大学硕士学位论文第三章√3网格细分方法及其实现原始实体上两面的夹角大小有关,而且与构建原始实体时其夹角处的倒角大小有关,同时倒角的大小还影响到工业产品整体的形状。图3-15不同大小倒角的细分效果角尺寸越小,该角相应于细分曲面的过渡圆角半径越小.如图3-16所示在模型顶部圆角比较大则生成细分面叫平滑,圆角较大,而立柱处则生成圆角较底部初始网格没有倒角则生成较大圆角。能够由于初始网格控制细分曲面的形状,就可以不断的通过改变初始网格,来根据直观感觉设计新车的造型,由于倒角的控制,可以有的放矢的改变初始网格如图3-16所示根据本田思域与本田奥德赛车型设计的一款类似车型,在圆角过渡之处,曲率连续性非常好。但是目前只是做到的只是整体轮廓构建,对于局部部件比如车门车窗轮廓,将进一步进行研究。山东理工大学硕士学位论文第三章√3网格细分方法及其实现下面通过实例对Catmull-Clark算法,Doo-Sabin、Loop和√3细分算法进行了比较。图3-15牛模型四种细分算法结果比较由于生成的不位于同一面充满了褶皱于边界顶点的奇异性生成难看的锯齿山东理工大学硕士学位论文第三章√3网格细分方法及其实现图3-16某轿车网格细分效果比较图对于四种细分算法的比较可以发现,它们在初始网格一样的情况下,细分的效果却是千差万别,如图3-15,3-16,3-17及表5-1所示。基于四边形网格的Catmull-Clark细分规则曲面重建存在着以下缺点:对网格进行重采样时,由于广义四边形的四个顶点并不一定共面,即使共面,投影到初始网格之后也可能不共面;其次,投影点的计算必须和原网格求交。同样,原四边形网格的四个顶点也不一定共面,这也使得网格必须被剖分成三角形再计算,客观上增加了计算代价。如图3-15,3-16所示,可以看到,牛模型的初始模型和汽车前脸局部模型都是三角网格,经过一次Catmull-Clark细分之后,产生了大量的褶皱,其实是生成了大量顶点不位于同一平面上的四边形,而随着细分次数的增加,这种褶皱会越来越多。表5-1各种细分算法的比较时,出现毛刺出现边界锯齿无无无有细分速度不统一跟价数有关四边形多边形(跟价数有关)基于四边形网格的Catmull-Clark细分规则曲面重建存在着以下缺点:对网格进行重采样时,由于广义四边形的四个顶点并不一定共面,即使共面,投影到初始网格之后也可能不共面;其次,投影点的计算必须和原网格求交。同山东理工大学硕士学位论文第三章√3网格细分方法及其实现样,原四边形网格的四个顶点也不一定共面,这也使得网格必须被剖分成三角形再计算,客观上增加了计算代价。如图3-15,3-16所示,可以看到,牛模型的初始模型和汽车前脸局部模型都是三角网格,经过一次Catmull-Clark细分之后,产生了大量的褶皱,其实是生成了大量顶点不位于同一平面上的四边形,而随着细分次数的增加,这种褶皱会越来越多。Doo-Sabin在三角网格的简化过程中,对于边界三角形的细分,由于其边界奇异性,使得在边界上不能形成封闭的多边形,而导致细分曲面边界产生锯齿,且这种锯齿随着细分次数增加逐渐向曲面内部靠拢,这种趋势决定了Doo-Sabin细分算法不适合与目前广泛存在的三角形网格的简化。Loop细分算法与√3细分算法同是细分生成新的三角形,因此其最终的连续性都能够达到C₂连续,但是,Loop细分1-4的分裂方式细分步长过大,而当需要某一分辨率曲面的时候,不能够灵活的达到要求,√3细分聚集了Loop细分的连续性长处,且1-3的分裂速度使得√3细分对于曲面的多分辨率表达有更大的用处。本章分析了几种常见的细分算法,深入研究了√3细分算法,提出了一种保持边界特征的√3细分算法。将√3细分算法与经典的细分算法作比较,通过实例验证结果表明,√3细分细分网格为三角网格,不会存在因异面而产生的棱角,可以达到C₂连续,而且其1-3的细分速度使其能够更灵活的控制细分的结束,相比而言,在三角初始网格的基础上,Catmull-Clark细分细分网格为四边形网格,四点异面时会产生毛刺,同样的Doo-Sabin细分因为生成多边形的边界条件的限制,而产生边界的锯齿。同样是生成三角网格的Loop细分,其1-4的细分速度,使得网格迅速膨胀而丧失细分的可控性。对比来讲,本文所选择的√3细分细分步长较短,灵活的控制细分步骤而不至于细分到过于稠密的网格,同时细分曲面达到了车身所需的光顺要求。在汽车车身设计上,对于新车型的开发周期要求越来越短,√3细分算法曲面造型方法,可以提高重构的速度,加快新车型的开发速度,对于车身设计具有重要的价值。山东理工大学硕士学位论文第四章基于简化算法和√3细分的车身多分辨率表达第四章基于简化算法和3细分的车身多分辨率表达随着自动空间激光测距技术的发展,可方便地直接通过测量车身实物模型得到稠密的三维测量点集,并采用自动重建技术得到原模型表面的一个稠密三角形网格表示。由于其直观的处理方法,这一技术在模型的快速设计过程中表现出了极大的优越性,成为目前应用广泛的表面造型技术之一。但由于庞大的采样数据,用户往往对得到的网格难以实行进一步的编辑和修改。本文提出了基于边折叠简化的√3细分算法,并将其应用于车身造型上。车身扫描点云通过三角剖分生成三角网格,通过边折叠简化算法将网格简化,简化网格保留原网格重要特征,去除网格杂点。然后通过√3细分算法进行网格细化,细化网格紧致性好,利于下一步的车身曲面建模。在车身的造型过程中,往往采用大规模甚至超大规模的多边形网格来表示复杂的车身曲面形状。从数据的获取、处理到传输都面临巨大的挑战。多分辨率模型正是为了解决这样的问题而提出的。所谓多分辨率模型是一种曲面表示方法,这种表示可以支持物体表面从粗糙到细致的各个层次的重构。按照这一定义,层次细节模型、累进网格表示都属于多分辨模型。多分辨率模型是对场景中的景物进行多层次表示的一种方法,它可以在不同层次上体现物体的细节,提高计算机处理图形、图象的速度。多分辨率模型技术主要分为简化和细化简化是对模型细微结构的去除,同时保留模型的主要特征区域,有些算法还可以保证物体拓扑结构不变,细化是通过递归地向原始模型中插入数据点,使物体的细节部分不断得到体现。层次细节模型同时保存有物体的若干个从粗到细的几何模型,因此不同模型间过渡时会出现跳跃,通过两不同层次模型间的插值可起到平滑过渡的作的基于能量优化方法、Hermann的基于三角形收缩方法和Garland的基于点对折叠方法等等都可以用来构造LOD模型。层次细节模型需要保存多个版本的数据,占用比原始数据大得多的存储空间,而且在不同细节模型间转换时会出现跳跃现象,为此Hoppe提出累进网山东理工大学硕士学位论文第四章基于简化算法和√3细分的车身多分辨率表达并在此基础上研究了图形绘制、几何模型压缩及全局光照算法加速的LOD表MatthiasEck,TonyDeRose和TomDuchamp最早把细分方法引入到网多分辨率表示中。设原始网格为M,选择一个适当的初始网格M₀作为参数域新网格M;具体过程大致如下:(1)划分(Partitioning):使用调和映射(Harmonicmap)把M分成r个三角形区域T₁…T,确定T₁的三个顶点和面,以此作为基本网格Mo。(2)对每个式构造局部参数化(Localparameterization):p₁:F,—→T,其中F₁是M₀的面,最终得到全局参数化p:M₀—→M。(3)重采样(Resampling):对Mo的每个面作J次4-1分裂得M;,M;的顶点都位于Mo上,因此Mj顶点Mo的一个采样,记M,=(V',E′,F′,φ),山东理工大学硕士学位论文第四章基于简化算法和√3细分的车身多分辨率表达M=(V¹,E',p,D)就是M的按细分连通重采样得到的网格。(4)最后利用Lousbery的方法对M作多分辨率表示。使得Mj+1的拓扑由M;进行1-4分裂得到且M;越来越逼近M,显然M;具有细AaronLee等人通过建立的任意拓扑网格的多分辨率适应性曲面参数化建立对Mo到M的光滑参数化,对M;顶点的位置由参数化函数进行参数化,因此包围收缩方法只适用于具有0亏格的原始网格。4.2基于边折叠简化和√3细分的多分辨率表达图4-2所示,第二部分为细分曲面的构造,主要是对控制网格的细分,具体方法见4.3:扫描获取稠密网格扫描获取稠密网格简化细分网格细分曲面图4-1多分辨率曲面重构的算法流程4.2.2控制网格的构造构造控制网格主要通过网格简化来实现。网格简化的实质是减少多边形面及其顶点的数目,同时尽量保持原来模型的形状。采用第二章详述的基于二次误差测度的边折叠的方法进行操作。至此,应用以上方法对初始的稠密网格进行简化,便得到了细分所需的控制网格。此方法基于QEM二次误差测度简化算法,通过创建辅助平面达到保持模型重要特征的目的;并且,新顶点的计算采用√3细分模式确定,为下一步的细分提供了更精确的控制网格。细分曲面是一种极限曲面。对于一个给定的初始控制网格,通过指定新顶点的生成规则和它们之间的连接关系来获得一张更密的网格,重复这一过程,网格最后收敛到一张曲面。√3模式是一种逼近模式,网格的顶点与曲面逐渐逼近。2.2中的简化算法得到了控制网格,只需应用第三章介绍的√3细分模式,具体的细分规则参见本文第三章3.3对控制网格加细,便得到所需的细分曲面。山东理工大学硕士学位论文第四章基于简化算法和√3细分的车身多分辨率表达图4-2轻卡车身简化和细分图图4-3轻卡车身网格局部4.3.1网格有序化本文根据上述所提出的方法,以某轻卡扫描点云数据通过三角剖分获取的基网格,通过基于二次误差测度的简化算法获取了精确的控制网格,获取网格的基础是简化到冗余的数据但不删除网格的重要信息,如图4-2(b)所示,然后通过√3细分对控制网格进行细分,如图4-2(c)所示,形成了细分网格,与原网格相比,细分网格完全表达了初始网格的重要特征,但是由于√3细分算法的对称性,细分网格比初始网格更加的精确,更加的有序,如图4-3所示,这样山东理工大学硕士学位论文第四章基于简化算法和√3细分的车身多分辨率表达下一步的车身建模工作变得更加容易。本文方法构造的细分曲面对重构模型的尖锐特征效果明显,有良好的视觉效果。如图5-4中某轿车车身局部曲面模型,上面3个为控制网格,下面3个为相应的细分曲面,其中,图4-4(a)为初始模型(30549个顶点,61049个面),图4-4(b)为通过二次误差度量简化算法获取的控制网格(1067个顶点,2130个面)及√3细分得到的细分曲面,本文的算法最好的特点是相比于原始模型更能得到光顺的模型,而没有大量的毛刺或褶皱,这是构建车身曲面所需,通过此过程,通过多分辨率的表达,实现了对网格的优化。相比于Loop细分,√3细分可以保持曲面的边界特征,细分的速度慢,有利于多分辨率模型的选取。图4-4某轿车车身局部曲面多分辨率表达在此阐述了一种构造√3细分曲面模型的方法,由于采用的简化方法是基于边折叠操作的,故可以构造出连续的多分辨率的模型,具体方法类似于Hoppe提出的渐进网格,即将边折叠操作的信息用一个等级树形结构存储起来,通过应用边折叠和点分裂(点分裂为边折叠的逆操作,即将点分裂为边。对初始模型进行边折叠简化过程中,存下每次折叠边的位置及其连接信息;通过对控制网格进行点分裂即可得到初始模型。所以初始模型可以由控制网格和点分裂信息表示出来,操作逐级周游树节点得到任意层次细节的模型。这样可以将连续的多分辨率模型和细分曲面应用于网络的累进传输中。在广域网中,由于传输速度较慢,如果直接传输原始的最精细模型,客户端在接收到模型的完整定义之前,不能显示模型的图像,屏幕将长时间是一片空白。如果能够累进地传输模型的定义,服务器端将原始模型分为控制网格和点分裂分就可以得到模型的细分曲面作为基本信息显示;然后在用户浏览过程中,再逐渐地传输点分裂操作记录,客户端再对粗糙的控制网格逐步进行点分裂操作,便逐步生成了原始模型。当前,获取车身数据点往往通过建立实体模型通过扫描设备进行扫描,将数据提取到计算机中,因此,一次数据的获取需要高价精密的设备,需要专业的扫描人员,需要花大量时间建立或改造实体模型。因此,在一个模型需要局部修改的时候,如果能够对扫描数据本身进行柔性修改,比如对某一部位进行法向方向的拉伸。本文由于时间原因没有对此修改方法进行完整做出,但是提出了构想。算法主要思想是在初始网格的基础上,通过基于二次误差测度的简化算法简化成粗糙的网格模型。此粗糙模型与原始模型具有对应的法向对应。让后以此粗糙模型为控制模型,通过√3细分将其细分到不同层次。通过调节不同层次的细分模型,对原始模型进行柔度变形。通过二次误差度量简化算法将输入网格Mo简化到最粗糙的水平M,用户就能浏览有最终结果的层次并选择一个中间网格M,来为随后建模操作确定基本范围。将已选定的M,转换成一个合适的√3细分控制网格L,以确定一个极限曲面S;。对于√3表面,必须构造Li,用这种方法用来保证一定限度的表面。特别地,必须避免非凸起的表面与高化合的表面,并且要选择有三角形优势的为了表示输入网格Mo作为细分极限曲S₁的一个正向位移,在表面S,上,需要找到每个端点v∈M₀,一个脚点S,(k),这样矢量位移vk-S,(t)在S,(t)点山东理工大学硕士学位论文第四章基于简化算法和√3细分的车身多分辨率表达个初始评价rk并在S;上通过一个精确的接近点搜索,然后来相互改进这个评价。最接近点查寻的汇合取决于最初估计的rk的质量。因此,通过计算Mo的总体参数来产生估计值,Mo使用细分控制网格L;作为一个范围。注意我们从Mi到L;的转换程序根据每个面F,平面嵌套的凸面分块。因此,必通过移动控制网格的顶点L,使用者可以在Li分辨率决定的区域对双尺方案生成了数据对齐网格M;,细分控制顶点和支持基本功能的相应形状的分变形都隐含着控制点L(修改的)的位置。如果另一个改变可以在不同的尺度上进行,即其它细节层次M选择的,首先像先前一样将M;转化为细分控制网格L;。因为当前的双尺度模简单的获取小尺度顶点vk的顶点位置。因为每一个尺度顶点(我们提取程序的采样过程),L,的控制顶点隐含了他们的新位置的改变。因此,新的法向位移D,是对基本曲面模型S;进行的计算。便可以通过局部的控制顶点,对兔子模型进行更小范围的修改,图(e)便是局山东理工大学硕士学位论文第四章基于简化算法和√3细分的车身多分辨率表达模型,通过绘图的手段表达了前面所述的思想。可以看到,在(图4-5从左到右:(a)简化兔子模型到14个区域(b)对应的控制网格和它的辨率(83个面)(e)使用b作为控制顶点改变兔子耳朵。4.5本章小结山东理工大学硕士学位论文第四章基于简化算法和√3细分的车身多分辨率表达细分模式产生细分曲面。这种方法不仅能够适当保持模型的重要特征,使网格变得有序而整齐,而且适用于具有任意拓扑结构的曲面,运行速度快。同时,本文对多分辨率网格的修改进行了初步探索。山东理工大学硕上学位论文第五章车身点云预处理系统的开发第五章车身点云预处理系统的开发本文实现了基于二次误差度量的简化算法和√3细分算法,以VC++程序设计语言为开发工具,结合UG平台进行二次开发,将成功实现了基于UG界面下的显示与编辑,并在前人工作的基础上,将基于车身测量点云的增量三角剖分算法,基于三角剖分网格的网格简化算法,细分算法、车身曲面分块算法和车身点云参数化组建了一个UG界面下的小系统。本章主要介绍UG编程环境,并结合实例,对简化模块,细分模块、三角剖分模块、分块模块、参数化模块和功能的实用性加以说明。UG软件提供了CAD/CAE/CAM业界最先进的编程工具集,以满足用户二次开发的需要,这组工具集称之为UG/Open,是一系列UG开发工具的总称,它们随UG—起发布,以开放性架构面向不同的软件平台提供灵活的开发支持。UG/Open套件主要由4个开发工具组成,如图5-1所示。利用UG/Open提供的应用程序和开发工具,用户可以在其提供的平台上开发出适合自己需要的CAD产品。图5-1UG/Open二次开发工具集UG/OpenAPI是UG与外部应用程序之间的接口,它是UG提供的一系列函数和过程的集合。通过C/C++语言编程调用这些函数和过程可以实现以下几(1)对UG文件及相应模型进行操作,包括UG模型的构建、编辑、装配体的建立、遍历,以及工程图纸的创建等。(2)在UG主界面中创建交互式程序界面。(3)创建并管理用户定义对象等。开发过程中发现UG/OpenAPI使用起来很不方便,主要表现在下面几个(1)字符串处理:UG/Open基本上采用的是标准C的字符串函数,使用起来非常麻烦,很容易出现错误。由于在开发过程中需要大量使用字符串,无形中增加了开发的周期。(2)数据结构的实现:目前很多Windows开发工具都提供了链表、映射和数组等类,对于实现复杂的数据结构非常有用,也非常方便。但是在UG/Open中相关的内容很少,想实现复杂的数据结构很困难。(3)同目前流行的Windows应用程序开发工具相比,UG应用程序界面的专用工具UIStyler中包含的控件较少,功能有限,受到的局限很大,使用起来很不方便,有的功能甚至难以实现。5.2.2利用MFC的UG应用开发MFC是VC++的一个重要的软件资源,利用MFC可以方便的利用VC++开发环境提供的先进的开发技术和工具,实现程序的可视化设计,与UG自带的界面开发工具UIStyler相比,利用MFC设计对话框更容易,修改和调试。本文把VisualC++作为开发工具,以MFCAppWizard(dll)文件的编写步骤编写程序的过程如下:(1)新建工程目录F:\UCDCS\FileNew,并在FileNew文件夹下新建三个文件名称拼写无误。(2)在VisualC++中选择MFCAppWizard(dlI)项,然后指定新建的工程目录,山东理工大学硕士学位论文第五章车身点云预处理系统的开发中选中RegularDLLWithMFCstaticallylinked,即创建一个静态链接MFC方式的DLL。(3)选择菜单Project→Setting,弹出ProjectSettings对话框。①确保左上角SettingFor下拉列表框的值设为Win32Debug。②Link选项卡:在Outputfilename文本框中输入DLL文件的输出路径和文件名,每次编译后,系统自动将生成的DLL文件置于指定的路径中。在Object/librarymodules文本框中输入UG库文件libufun.lib和libugopenint.lib。若使用UG/open++,还需添加库文件libopenintpp.lib和libopenpp.lib。③Debug选项卡:在Executablefordebugsession文本框中输入UG可执行文件ugraf.exe的全路径,该文件通常位于UG根目录下的UGII文件夹中。④选择菜单Tools→Options,弹出Options对话框。选择Directories选项卡,在Showdirectories下拉菜单两个选项Libraryfiles和IncludeFiles中添(4)创建相应的用户菜单脚本文件,并注册相应的工程路径。(5)新建用户文件,添加新文件Main.h和Main.cpp到项目中,并将这两个文件作为用户项目主文件。添加新文件App.h和App.cpp到项目中,并将这两个文件作为用户项目的首个应用文件。至此,UG应用开发模块创建完毕。按照5.2.2介绍的开发过程在VC++环境下编写好程序并运行,可在UG点击车身点云预处理可出现五个链接模块:三角剖分模块、分块模块、参数化模块和简化模块,和细分模块如图5-3所示。山东理工大学硕士学位论文第五章车身点云预处理系统的开发三角剖分模块参数化模块道化模块细分模块建或编辑特征时,从工具→>表C或者从“智能参数”输入字段E“公式”下方)可以使用一种字段分块模块下一贴下一贴图5-2车身点云预处理菜单图5-3车身点云预处理菜单包含的功能模块下面分别对四个模块的功能的实现加以说明。其中简化模块给出较为详细的运行步骤,其余三个模块主要给出主对话框和运行算例。(1)点击简化模块后,出现对话框如图5-4所示。(2)点击“文件打开”,通过路径选择要打开的文件,如图5-5所示;(3)文件打开后,点击“简化”,自动实现网格的简化,完毕后,给出“网格简化结束”示意框和简化运行时间,如图5-6,图5-7所示。2保存格式plyz保存格式plyza图5-4简化模块主对话框山东理工大学硕士学位论文第五章车身点云预处理系统的开发ply2确定图5-5简化结果显示细分模块文件读入读入格式ply2细分模式网格细分文件保存输出格式图5-6细分模块对话框山东理工大学硕士学位论文第五章车身点云预处理系统的开发图5-7轻卡车身细分模型三角剖分模块、分块模块、参数化模块主对话框及示例其余三个个模块的主要对话框及实现示例如图5-8~5-11所示。其余三个个模块的主要对话框及实现示例如图5-8~5-11所示。●Pa文件打开三角化过程图形显示图5-8三角剖分对话框及三角剖分结果显示山东理工大学硕士学位论文第五章车身点云预处理系统的开发四恶显示留存散据文件图5-9分块模块主对话框回0口回0口1国1BFomtloisAsetkepfomsionAyreluec图5-10分块结果显示的yO的yO口theOpenNwnfleMeno幽线容敬化幽线多敬化面显示图5-11参数化模块主对话框及曲面参数化结果显示山东理工大学硕士学位论文第五章车身点云预处理系统的开发山东理工大学硕士学位论文第六章总结与展望第六章总结与展望车身曲面造型是汽车设计中一个非常重要的环节,它是几何特征提取、数据区域分割、模型重构等的基础。传统的汽车造型过程中,效果图的绘制阶造型师要对每种方案从各个角度绘制效果图,在小比例模型的制作阶段也要去雕琢各种方案的模型,以上工作都要花费大量的人力物力,延长了设计的时间。所以,应用计算机辅助技术帮助造型师完成这些耗时繁杂的工作,是现代造型技术发展的一个方向。本文主要研究了基于√3细分的车身造型方法,具体工作总结如下:(1)本文概述了国内外简化算法的研究现状,对各种存在的简化算法进行总结和研究;同时研究了现有的细分方法,针对几种典型的细分算法进行了全面分析与总结,并分别指出了这些方法的优缺点和适用范围;(2)对Garland提出的基于边折叠的二次误差测度(QEM)算法进行了研究,提出了一种保持初始网格特征的简化算法,能够快速精确的低分辨率网格模型。将简化网格与imageware简化网格进行比较,该算法具有保持特征精确和高效快速的特点,对于后续的车身曲面重建构成提供了方便,同时为细分造型提供了初始网格。(3)深入研究√3细分方法,提出了并实现了一种保持边界特征的√3细分方法,实现了高分辨率网格的生成。与典型细分方法比较具有连续性好,细分步长短,可控性好等优点。通过控制初始网格的倒角大小,可以控制细分曲面的形状,对于车身造型具有重要的价值。(4)将基于二次误差度量简化算法和√3细分方法应用于车身多分辨率曲面构建,并利用开发工具VisualC++6.0编程实现,生成了车身多分辨率曲面。并结合UG/OpenAPI进行二次开发,构建了车身点云预处理系统,容纳了车身点云三角剖分,网格简化网格细分和数据分割等功能,对于后续的曲面重建过程具有重要的价值。(5)对车身扫描曲面的多分辨率更改进行了初步探索,提出基于计算机技术的汽车造型修改方案。本文的创新之处是:(1)构建了基于二次误差度量的简化算法和√3细分算法的多分辨率表达,并应用与车身造型,提高了车身造型速度。山东理工大学硕士学位论文第六章总结与展望(2)构建了车身点云预处理系统,补充了UG点云处理功能。6.2将来的工作由于课题涉及内容广泛,而研究时间有限,本文的研究工作还存在不足和有待于进一步的研究之处,主要包括以下几个方面:(1)实现网格模型的多分辨率修改,可以实施控制模型的形状改变,实现在测量点云的基础上通过简化算法将点云简化到一定粗糙网格,作为细分曲面的初始控制网格,通过对控制网格的人机交互改变细分网格的形状;(2)对简化初始网格进行自适应细分,对于网格的细分会生成大量的细分网格,但对于平坦的区域,不需要细分的太过于稠密,因此通过一个适当的值来判断两面片之间法线之间的夹角来判断是否需要继续细分,这样就可以生成分区曲率的不同来控制细分网格,提高细分的速率而不影响细分的效果。山东理工大学硕士学位论文致谢本论文的工作是在我的导师李旭副教授的悉心指导下完成的,她渊博的学识和高效的工作方式及其平易近人的处世态度使我受益匪浅。李旭副教授指引我打开了车身造型,曲面重构的大门,为我提供了优越的学习条件,并耐心指感谢李迪副教授、徐家川副教授和周长城教授对于我的科研工作和论文都提出了许多的宝贵意见,并且他们严谨的治学态度和科学的工作方法给了我极大的影响,使我终生受益。在此向你们表达我衷心的感谢。感谢师兄杨宪武,杨科彪在实验室工作及撰写论文期间给予我莫大帮助和指导,使我少走了很多弯路,在此,向你们表达我的感激之情。感谢你们在生活和学习上对我的帮助;感谢同寝室的徐伟,郭俊飞,高树文同魏镇,感谢你们让我感受到了友情的可贵。也感谢我的家人,感谢我的父亲、母亲,感谢他们对我的关心、理解和支持,使我能够在学校专心学习完成学业,祝你们永远健康。感谢我的弟弟,感谢他为我所付出的一切。最后,感谢我的女友娄丽君,感谢你生活上的关心和精神上的支持,支持我努力向前完成学业。山东理工大学硕上学位论文参考文献[1]程正,马芳武.汽车造型[M].吉林:GraphicsandImageProceeding,1974[3]Catmull,E.,Clark,J..Recursivelygeneratedtopologicalmeshes.Computer-AidedDesign,1978,10(6):350-355.[4]Doo,Sabin,M..Behaviorofrecursivedivisionsurfacesnearextraordinarypoints.ComputerAidedDesign,1978,10(6):356-360.USA:DepartmentofMathematics,UniversityofUtah,1987.[6]DynN.,LevinD.andGregoryJ.A.A4-pointI257~268.Graphics,1990,9(2):160~169.[8]DenisZorin,PeterSchröderWimesheswitharbitrarytopology.In[9]LeifKobbelt.√3Subdivision.In:ProceedingsofComputer[10]LuizVelho,DenisZorin.4-8Subdivision[J].ComputerDesign,18(2001)397~427.[11]ZhangHongxin,Wa2002(7).[12]LiG,Maw,BaoH.√2subdivisionforquaComPuter.2004.20:180-198.[13]王国瑾,汪国昭,郑建民等.计算机辅助几何设计,高等教育出版社,施普林格出版社,2001年7月.[14]周海,周来水.基于细分的逆向工程及其关键技术分析[J].机械设计与制山东理工大学硕士学位论文参考文献[16]王金生,韩臻等.几种经典网格细分算法的比较[J].计算机应用Guo-jin.HoneycombSubdivision[J].JournalofSoftware.2002Vol13,No7:1199-1208.[18]WeiyinMa,XiaohuMa,Shiu-KitTsoDenseTriangleMesh[J].proeeedingsoftheGeometricModelingProeessing-TheoryandApplications2002:94-103.meshes,In:BrianHed,ProceedingsofSIGAidedGeometricDesign,1994,11(2):97~214.[22]KalvinAD、Taylorboundederror,IEEECG&A,1996,16(3):64~

温馨提示

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

评论

0/150

提交评论