家畜三维虚拟仿真模型与模型库的建立与开发
2014-01-20王美丽牛晓静曾德兴张宏鸣
王美丽,孙 钰,牛晓静,陈 伟,曾德兴,金 阳,张宏鸣
(西北农林科技大学信息工程学院,陕西杨凌712100)
目前通过使用Auto CAD 技术和3DS MAX 软件可以建立机械设计基础上应用的机械零件、标准件等的模型库,使设计者可以从模型库中调用三维模型,进行设计和装配,对设计和制造工作具有很大的帮助,有关机械零件方面的三维模型库已经初步建立[4-6],针对这些模型库的检索工作也有了一定的进展[7]。国内外建立的关于动物和人体三维模型及其各器官三维模型非常多,但是这些模型都比较分散,没有建成完善、专门的动物模型数据库,而且很少有关于动物内部结构的模型。因此,建立比较完善的常见家畜及其动物器官模型数据库具有非常重要的意义,使用者能够方便地检索到自己需要的模型,提高其工作效率。尤其是近年来出现的虚拟手术系统是计算机技术、图像处理技术和医学物理等科学与医学的交叉融合并应用于医学领域产生的成果。动物模型数据库的建立为动物虚拟手术的开发奠定了基础[8],可以作为兽医专业学生的术前培训。
1 常见动物三维虚拟模型的建模方法
由于动物形体不规则,因此需要综合运用多种建模方法来建立完整的动物模型,这里将分别介绍多种优秀建模方法(细分、挤出、镜像、组合建模等)在常见动物模型建立中的应用[9]。
1.1 细分(Subdivide)建模
细分建模主要针对较为规则的平面光滑曲面的物体。这种建模方法通过对子物体(顶点Vertex或面polygon等)的修改,形成造型物的形状或大致轮廓,并加入MeshSmooth修改器,设定不同的参数,3DS MAX 会自动插值,重新定义顶点,形成光滑的表面。以山羊的头部建模为例,首先创建一个长方体,并将建立的长方体转换为可编辑多边形,增加分段数,对长方体进行修改,使之生成山羊头部的大概轮廓。图1为使用细分建模分别建模的山羊、马头部模型以及山羊心脏模型。
图1 细分建模实例Fig.1 Subdivide models for the head of goat and horse and the heart of goat
1.2 挤出(Extrude)建模
使用挤出建模建立山羊的躯干模型时,首先选择头部模型的背面,然后使用挤出命令挤出脖子,用细分的方法对挤出的脖子进行修改。修改完后再用挤出的方法挤出躯干的大概模型,对挤出的大概模型添加顶点、修改顶点位置和细分处理获得躯干的最终模型。图2为使用挤出建模制作的羊身体部分和马尾巴部分模型。
图2 挤出建模实例Fig.2 Extrude models for the body of goat and a horse tail
1.3 复制(Copy)和镜像(Mirror)建模
复制和镜像建模针对有规则形态的形体,或排列具有一定的规律性的造型建模,这也是3DS MAX 建模中常用的方法。由于常见动物模型具有对称性,对于模型的各个部位(腹部、腿部和头部等等)均采用镜像建模的方法。对于类似模型,可以采用复制建模(如腿部)。图3为使用复制、镜像建模方法建立的马、牛腿部模型。
图3 镜像建模实例Fig.3 Mirror models for the legs of horse and cattle
1.4 组合建模
动物是由多个相同或者不同的其他部分组成,要完成最终的目标物体,需要利用各种不同的坐标轴,经常还需要改变部分的轴心,使用旋转、移动、缩放、对齐、阵列等各种常用工具,通过切换各个视图来方便的进行操作,最后组合成一个完整的有机部分。通过综合使用各种建模方法,最终形成的山羊和马的模型(图4),可以看出,模型的整体形态完全接近动物的真实体型,体型结构合理。
2 三维模型库的设计与开发
2.1 模型库总体框架与功能介绍
模型库的建立和管理通过Microsoft Visual C++6.0和SQL SERVER2008[10]来实现。图5为三维动物模型库的总体框架图,具体功能描述如下:
(1)模型信息录入,包括模型文件的选择,模型的编号,以及模型的名称。
(2)模型信息修改,选中某一记录,选择修改,可修改选中记录的模型文件、模型的编号和模型的名称。
设定有m个处理器,主处理器已接收来自从处理器的最优解,S={S1,S2,…,Sm},其中 Sm 代表第m个处理器求得的最优解,接下来是使用杂交算子方法来分析和处理该最优解。上述的算法中,结合路网的实际,使用了启发式杂交算子,通过实验案例来表达如下所示。
(3)模型信息的删除,选中某一记录,选择删除,即可将选中的记录删除。
(4)模型信息查找,在查找的文本框中输入要查找的关键字,点击搜索即可将匹配的记录全部显示出来。可以进行模糊搜索。
图4 建模完成实例Fig.4 Completed models for goat and horse
图5 系统总体框架图Fig.5 The overall framing pipeline for generating animal 3D models database
2.2 开发步骤详细说明
2.2.1 配置环境
(1)下载OpenGL库文件;
(2)将包里的.h文件(gl.h,glu.h,glaux.h)放到VC 的include/gl/目录下(.../Microsoft Visual Studio/VC98/Include/GL/);
(3)将包里的.lib 文件(glu32.lib,glaux.lib,opengl32.lib)放到.../Microsoft Visual Studio/VC98/Lib/目录下;
(4)将包里的.dll 文件(glu.dll,glu32.dll,opengl32.dll)放到C://WINDOWS/system32 目录下;
(5)在每个VC创建的工程作如下设置:project->settings->link选项卡->object/library modules里添加OpenGL32.lib glu32.lib glaux.lib。
2.2.2 数据库链接 在工程中导入ADO 动态链接库msado15.dll,并添加代码#import"c: Program Files Common Files System ado msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF"),这样就可以进行数据库操作。
2.2.3 系统运行 图6为三维模型库运行主界面,其中左侧为模型库信息,右侧为模型显示。该系统可对模型进行添加、修改和删除操作,通过双击模型信息可以显示模型,也可以通过查找关键字在模型库中搜索所需模型,支持模糊查找。图7为羊的前(a)后(b)左(c)右(d)模型,通过按下鼠标右键,可以调整模型的大小,按下鼠标左键,可以对模型进行平移和旋转。
3 结论与展望
本文首先使用3DS MAX 软件建立常见动物三维模型,针对动物模型的复杂性选取了细分曲面、组合建模技术来建立动物模型;模型库的建立和管理通过Microsoft Visual C++6.0和SQL SERVER2008来实现,可以实现模型添加、修改、删除以及检索等操作。三维模型库可作为动物科学专业教学和实习的辅助工具,同时可为虚拟动物手术奠定基础。
图6 系统主界面Fig.6 The main page of animal 3D models database
图7 不同角度模型显示图(以山羊为例)Fig.7 The goat 3D models from different angles
[1]张 华.现代技术在兽医临床教学中的优势[J].黑龙江畜牧兽医,2010(23):75.
[2]黎宗强.关于现代家畜解剖学教学的一些改进[J].广西农学报,2012,26(5):75-77.
[3]李春生,韩玉清.现代生物技术在内蒙古鄂尔多斯市家畜改良工作中的应用[J].畜牧与饲料科学,2011(2):62-64.
[4]黄明聪,张树生,张孝龙,等.一种基于二维草图的三维CAD模型检索方法[J].锻压装备与制造技术,2013,48(3):107-110.
[5]方 舟,张利娜,房亚东.云制造中的标准件三维模型库技术[J].西安工业大学学报,2013,32(10):821-824.
[6]王占松,田凌.基于功能的三维模型检索系统[J].计算机辅助设计与图形学学报,2013,25(12):1 877-1 885.
[7]Eitz M,Richter R,Boubekeur T,et al.Sketch-based shape retrieval[J].ACM Trans Graph,2012,31(4):31.
[8]Kiefer P,Noack T,Vollroth M,et al.3D-rotational angiography(Dyna-CT)for mitral valve imaging in an acute animal model[C]//Cardiology.Allschwilerstrasse 10,Ch-4009 Basel,Switzerland:Karger,2012,121(2):111-111.
[9]郑 艳,徐伟伟,李绍勇.3DS Max 2012 基础教程[M].北京:清华大学出版社,2012.
[10]张 莉.SQL Server数据库原理与应用教程[M].北京:清华大学出版社,2012.