三维模型建模方法的总结及其应用

2018-02-27 15:04卢婧宇符智棱李婷婷
电子技术与软件工程 2018年19期
关键词:复原多边形绘制

卢婧宇 符智棱 李婷婷

摘要

计算机数字化、可视化等技术和设备的创新与高速发展,促使虚拟复原技术在计算机领域中引起了广泛的关注。三维模型建模方法复原技术,利用多特征三维稠密重建方法、图像投影变形技术和混合式工BR技术等技术实现纹理映射,获得三维物体的参数化、曲面和多边形的模型描述,在虚拟环境中显示,完成从真实世界到虚拟世界的转换功能。通过对比不同方法复原三维模型,可以寻找出最佳复原方法,减少计算长度,增加计算机可读性,加强计算机对虚拟三维模型的综合操作能力,制作出具有较强真实感的三维图形,可应用于计算机辅助几何设计、文物复原、逆向工程等领域。

【关键词】三维建模 三维模型

三维空间比二维更具有视觉真实感,在现行的三维模型虚拟复原系统中,引用三维空间作为虚拟复原技术的平台,是目前对虚拟复原系统研究与应用的热门趋势。应用三维模型虚拟复原系统能在航空航天、建筑设计、土木建造、医疗、军事、考古、娱乐、艺术等方面进行方案演示、验证和评价的综合应用,推动多领域应用技术的发展。不仅如此通过三维模型虚拟复原系统,能对方案科学性预演,利于用户完善方案,避免更多的成本。三维模型虚拟复原系统,它还可以使用计算机辅助虚拟缝合和破损模型的恢复。与传统的人工修复措施比较更具有客观性和高效性等,它不单单是缩短了人工修复的周期,降低了人工在缝合模型过程中的难度,还避免了物理模型的二次损伤,具备较高的实际意义,值得深入探讨研究。

1 研究现状

三维模型是应用计算机或其他数字化设备显示的物体几何线性表示,既可以显示物质世界的实体模型,也可以是意识世界中虚拟构造的物体模型。任何存在于物理自然界的物体都可以通过三维建模进行构造出相应的模型,可见三维建模的重要性,由此,利用计算机进行三维建模同样具有跨时代意义。当今三维建模方法依据几何造型软(如AutoCAD、3DsMax、Maya等)可以分为基于图像的三维建模和基于几何造型的三维建模。

1.1 基于图像的三维建模

基于图像的三维建模,包括多特征三维稠密重建方法、图像投影变形技术和混合式BBR技术等。其中,

(1)多特征三维稠密重建方法,需要先分析模型的各项基本特征如:光影强度、纹理信息、造型凹凸等方面,重构出与目标物体具有高契合度的的三维模型。该算法在重建三维模型物体时具有较好的稳定性和鲁棒性,针对凹凸感较强的模型也能重建出更精致的细节,具有较高的实用价值。

(2)图像投影变形技术,其原理是根据待重建还原的画面中可见点的深度值,分成若干部分重建场景种的三维几何,具有较强真实感,且能在不同视点之间的场景任意、连续的切换。

(3)混合式IBR技术,原理是在小误差范围内,用图像映射代替几何模型,IBR技术能在保障高速绘制的同时,保证图像的品质。由于IBR技术整个场景都是采取一样的环境映照复原,可能会产生较大的误差。

1.2 基于几何造型的三维建模

基于几何造型的三维建模,包含CSG法、三角形构建法和二次曲面和复杂多边形镶嵌工具建模法等。其中,

(1)Constructive SolidGeometry(CSG)法,设计建模软件辅助建模,能在模型复杂度不高的情况下建立丰富的造型,但建模周期较长,需要耗费更多的时间和人力。

(2)三角形构建模型法,若降低对模型真实还原度的要求,很多的物体都能用三角形来快速建模,可以把物体看成是由很多个三角形拼接组成的模型。我们通常应用OpenGL中提供的glBegin(GL_TRIANGLES)和glEnd()函数来来开始绘制三角形,然后通过重复使用glVertex3f函数绘制出三角形的每个顶点。

(3)二次曲面和复杂多边形镶嵌工具建模法,该措施与三角形构建模型法相类似,不同于三角形构建的是,它更加适合于具有复杂几何图形的模型,这种模型往往难以用三角形构造法表达到位。在OpenGL的工具库glu32.LIB提供了这个功能,它里面有一个强大的多边形,它可以呈现复杂的多边形镶嵌界面,能对锥形、圆柱形、圆盘状或球形的物体进行渲染,相比三角形构造,更加灵活。

2 算法描述

基于OpenGL的三维建模技术在三维运用中具备优于其余建模技术的长处。例如:

(1)能简便三维建模过程。通过使用OpenGL库里包含的辅助函数,可以简单的绘制出基本的3D图形,而高复杂性的模型,可通过其它合成的方法来实现。合成的基本方法有:1.简单几何体合成,OpenGL中含有椎体、球体等简单几何体,可通过改变这些几何体的参数合成。2.曲面体合成,通过计算求值程序得到Bezier曲线(面)或者绘制出NURBS曲线(面)。3.三角形合成,由于三角形是最简单的图形任何多边形都能由它表达,是OpenGL的首选设计图元。

(2)能逼真模拟建模环境,依赖于OpenGL所提供的辅助函数,可以有效地对模型进行着色渲染、光照变化、纹理映射及深度检测等修饰,能给用户提供具有高度真实感的设计体验,切实反映出用户的实际需要。

(3)高效的實时动画响应,由于具有能对动画颜色、深度、模板和累积进行双缓存的操作函数,OpenGL能对动画实现连续显示,不但大幅简便了程序算法,还大大提升了画面动态显示的速度。

(4)具有较佳的灵活性,OpenGL作为一个独立的、线型的软件接口,能够实现在不同的硬件平台、标准视窗和操作系统中工作。

2.1 运用OpenGL进行三维建模的流程示意图

在VC环境下,应用OpenGL进行三维建模时,准备数据阶段通常需要先测量出特征的点数据及面数据,保存成input.dat文本文件,将这些数据存入PointNode,FaceNode程序结构中,建立显示图元的列表。图1表示运用OpenGL建模的具体流程。

2.2 三维建模算法思想及步骤

2.2.1 基于图像的三维建模

(1)多特征三维稠密重建方法,该算法先需要对图像提取出Harris和DoG的特征点,按照与所抉择的特征点的欧式距离远近程度进行特征点匹配,再对图像进行特征匹配,通过三角测量原理来反复获取稀疏点云数据,对所得点云进行TNCC排序,并权量各个视角下点云的可靠度,将这些种子点按可靠性排序,利用可靠性高的点云作为可扩展的初始种子点,获取较集中的空间有向点云或面片,并删除不可靠的点云数据,完成重建过程。

(2)图像投影变形技术,该算法对于固定视点摄像机可以利用不同位置和角度绘制景物表面,简单地说是对取景后的几何体进行重投影变形的过程,具体是取一点为视点,将周围场景投影变形到中间面。而针对摄像机位移动时,可以考虑加入可见点的深度到原始图象序列,获取更多三维信息,局部重建模型,并对这些可见点进行投影变换,或者建立各相邻画面像素的对应关系。

(3)混合式IBR技术,该原理指的是同时选择几何和图像作为基础要素去绘制画面。在可接受小误差范围中,用图像映射替代几何模型,这样同时保证了绘制的速度和图像的品质。然而因为整个场景都使用相同的环境映照,所以生成的图像会存在不小的误差。IBR法在全景图应用方面的技术相较成熟,它不但能实现方便,且易于在intemet操作。通常在全景的制作過程中,可简单归纳为全景模型选择、图像采集、投影变形、图像拼接和融合,以及全景图展示这五部分。如图2所示的全景显示浏览。

2.2.2 基于几何造型的三维建模

(一)ConstructiveSolidGeometry(CSG)法,该算法实现条件高,要求所构视图只能由简单的直线、园、圆弧表达,每个均匀厚度基体的投影必须完全在三视图上显示,且基体的面平行于两坐标轴所构成的平面。从实际考量,纯CSG法并不适用于实际情况,后来由Aldefeld和Richter经过研究创造了具有半自动识别的算法,我国的霍彬也提出了相似算法,采用人机结合,人机交互方式操作视图,或者借助数字化仪对图纸数据进行计算机系统描述再重现。该算法能在一定复杂程度的情况下显示丰富的造型,但耗费时间和人力,建模周期较长。

(2)使用三角形构建模型,该算法的原理是以若降低模型显示真实度,那么可以用三角形来表示绝大部分物体,从而简化模型,通常适用于工程模型,如构建飞机的机身、机翼和机尾的模型。在OpenGL中可以采用glBegin(GL TRIANGLES)和glEndn函数可以发起开始和结束绘制三角形命令,再在这两个函数间使用gIVertex3f(x,y,z)函数绘制顶点,使得每三个顶点形成一个三角形。用三角形绘制模型的部分程序如下:

glBegin(GL_TRIANGLES);//三角形绘制函数

//一个三角形

gIVertex3f(x1,y1,z1);

gIVertex3f(x2,y2,z2);

gIVertex3f(x3,y3,z3);

//一个三角形

gIVertex3f(x4,y4,z4):

gIVertex3f(x5,y5,z5):

gIVertex3f(x6,y6,z6);

//一个三角形

g1End();//绘制完成

在glBegin(GL TRIANGLES)和g1EndQ函数之中的每三个gIVertex3f函数所生成的顶点可构成一个三角形,可以通过改变gIVertex3f函数中X,Y,Z的参数值得到由三角形绘制而成的三维模型。

(3)使用二次曲面和复杂多边形镶嵌工具建模,该算法原理相似于三角形构建法,不过针对不规则多边形,具有更强的灵活性。通常是使用二次曲面的专门镶嵌工具quadric,使用gluNewQuadric函数表达二次曲面状态变量的当前状态,通过改变二次曲面的状态,即计算机语言描述如何绘制几何模型达到绘制效果。在OpenGL中,将凹多边形和内部有孔的多边形称为复杂多边形,原理类似于简单图元的绘制。对于复杂物体,往往采取二者相结合的方式,例如在绘制飞机模型时,针对飞机的机头、机身发动机、发动机、顶棚、机翼和机尾,根据其特性,可以使用复杂多边形函数绘制机翼和机尾,其余用二次曲面的函数来绘制。示例柱形机体与多边形机翼的绘制程序如下:

gluCylinder

glNormal3f(0.0,1.0,0.0);

//定义多边形法线

glTessBeginPolygon(tess,NULL);//开始用复杂多边形法绘制机翼

gluTessBeginContour(tess);

for(i-O;i<16;i++)//循环调用数组中的顶点参数

gluTessVertex(tess,wing[i],wing[i]);//具体绘制的顶点

gluTessEndContour(tess);

gluTessEndPolygon(tess);//结束机翼的绘制

OpenGL功用非常广,得力于它丰富的库函数,能调用不同的函数来满足不同的需要,绘制出需要的三维模型。飞机的其余部分也可以用二次曲面和复多边形以类似的方式绘制。在这以上面例子作简洁示意。

3 算法分析

构建三维模型的目的是能对方案科学性预演,利于用户完善方案,避免更多的成本。利用OpenGL强大的功能库,寻找合适的算法构建符合需求的三维模型是目前研究的热点,经过不断的分析与总结,对比基于图像与几何造型的三维建模优劣势如表1所示。

无论是基于图像的三维建模还是基于几何造型的三维建模算法,都有其独特之长,利用OpenGL建模时,可以针对不同三维模型的形状特征选用更适合的算法进行建模,降低计算难度,提升系统的流程程度。

4 结论

三维建模,应用计算机辅助虚拟拼接和复原破碎的模型,与传统的人工修复措施相比更客观、更高效,它不光是极大地缩短了人工修复的周期,降低了人工缝合模型的难度,而且有效避免了物理模型的二次损伤,具有较高的理论研究意义与社会价值。基于OpenGL渲染三维模型的纹理处理,可以增强三维模型的真实感,相较于传统人工复原方式更加省时、高效,加强了计算机对虚拟三维模型的综合操作能力,在制作三维真实感图形中具备更高的性能,能够在诸多复杂物体的建模过程中发挥重要作用。本文主在归纳各个方法的优劣势,通过对不同算法的对比,总结其特长与薄弱之处,方便建模时扬长避短,针对不同模型采取更加合適的方法,提升OpenGL在三维建模方面的实用性。

参考文献

[1]史颖.两种大型场景三维重建方法研究[D].山西大学,2015.

[2]任璞.基于几何造型和图像的三维重建方法研究[D].山西大学,2014.

[3]陈波.基于构造立体几何(CSG)法的三维重建技术的研究[D].苏州大学,2013.

[4]史颖,王文剑,白雪飞.多特征三维稠密重建方法[J].计算机科学与探索,2015,9(05):594-603.

[5]莫燕.机械三维模型的实时交互式显示[D].武汉科技大学,2003.

[6]庄怡,汪剑春,胡新荣.IBR技术与应用综述[J].武汉科技学院学报,2010,23(03):49-5.

[7]陈波.基于构造立体几何(CSG)法的三维重建技术的研究[D].苏州大学,2013.

[8]方斌.OpenGL中3DMAX模型的应用[J].贵州工业大学学报,1999:28(02):45-49.

[9]高建瓴,施怀瑾,邸江涛.一种新型的开放式图形库OpenGL及其运用[J].贵州工学院学报,1995:24(06):81-84

[10]Richard S Wright Jr Michael Sweet著.潇湘工作室译.OpenGL超级宝典[M].人民邮电出版社,2001-06.

[11]张扬.基于图像的古建筑物虚拟复原关键技术研究[D].天津大学,2009.

[12]Houlding S W.3D GeoscienceModeling:Computer Techniques forGeo10Gical Characterization[M].[S.L]:Springer-verlag,1994.

[13]吴立新.三维地学模拟与虚拟矿石系统[J].测绘学报,2002,31(01):28-33.

[14]齐安文.一种新的三维地学空间构模方法-类三棱柱法[J].煤炭学报,2002,27(02):158-163

[15]万剑华,朱长贵.3D-GIS中空间对象的几何表示[J].矿山测量,2001(03):16-19.

猜你喜欢
复原多边形绘制
Art on coffee cups
多边形中的“一个角”问题
温陈华:唐宋甲胄复原第一人
浅谈曜变建盏的复原工艺
毓庆宫惇本殿明间原状陈列的复原
多边形的艺术
解多边形题的转化思想
多边形的镶嵌
放学后
在转变中绘制新蓝图