1、基于 STL 格式的髋关节真实感图形显示技术第 27 卷第 11 期2005 年 11 月武汉理工大学JOURNALOFWUHANUNIVERSITYOFTECHNOLOGYVo1.27No.11Nov.2005基于 STL 格式的髋关节真实感图形显示技术陈作炳,胡新宇 2,毛娅,李世普 3,闫玉华 3(1.武汉理工大学机电学院,武汉 430070;2.湖北上业大学机械学院 ,武汉 430074;3.武汉理上大学生物材料工程研究中心,武汉 430070)摘要:基于对 OpenGL 及 STL 文件格式的研究,利用 OpenGL 图形库卓越的渲染效果,应用几何形体模型数据实现了重建实体真实感图形
2、显示;为增强实体的真实感图形显示效果 ,克服重建过程中出现的“鳞状效应 “及消除断面层间痕迹.分别提出了基于等值面矢量场的方向平滑处理和应用三角 BernsteinB6zier 曲面重构的理论思想,取得了良好的真实感图形显示效果.关键词:STL;髋关节;真实感图形;OpenGL中图分类号:TP391,9 文献标志码:A 文章编号:167l 一 4431(2005)11-007203RealisticImageDisplayingTechnologyforCoxaJointSolidBasedonSTL.FormatCHENZuobing.,HUXin,MAOYa.,LIpu.,YANYuhua
3、(1.hootofMechanicalandElectricalEngineering,WuhanUniversityofTechnology,Wuhan430070,China;2.SchoolofMechanical,HubeiUniversityofFechnology,Wuhan430074,China;3.Bk)medicalMaterialsandEngineeringResearchCenter,WuhanUniversityofFechnology,Wuhan430070,China)Abstract:BasedontheresearchonOpenGLandSTL,thisp
4、apermadeuseofwonderfulexaggerationeffectofOpenGLgraphicslibrary,whichrealizedtherealisticimagebyusingthegeometricbodymodelSdata.TostrengthenthebodySdisplayingeffect,itpresenteddirectionalsmoothingmethodofissurfaceandthethoughtofapplyingBernsteinBfiziercurvereconstmctiontheoryforsmooth3Dobject.Fhefin
5、alresultprovedthemeffectively.Keywords:STL;eoxajoint;realisticimage;OpenGLSTL 格式文件被广泛应用于科学计算可视化,计算机动画及虚拟现实等技术之中 ,在工程实践中往往需要对 STL 文件的实体模型进行结构观察和局部细节分析 ,因此,基于 STL 格式实体的真实感图形显示技术是关键技术之一.为了实现重建实体的真实感图形显示,可利用 OpenGL 图形库卓越的渲染能力,并对等值面的矢量场进行方向平滑处理及应用三角 Bernsteintzier 曲面重构理论.1STL 文件的真实感图形显示1.1 读取 STL 文件数据STL
6、 文件格式.是目前 CAD 实体模型与快速成型设备进行数据交换的标准 ,几乎所有类型的快速成型系统都采用 STL 数据格式.STL 数据文件其实是对 CAD 实体模型进行表面三角化处理,生成由许多空间小三角形面片逼近还原 CAD 实体模型,因此,STL 模型的数据文件记录了实体模型的多个三角形面片收稿日期:20050628.基金项目:教育部骨干教师资助项目.作者简介:陈作炳(1962 一),男,博导,教授.Email:第 27 卷第 11 期陈作炳,等:基于 STL 格式的髋关节真实感图形显示技术 73数据,包括三角形的顶点坐标和法矢量.读取 STL 文件数据时,定义结构体 Triangle
7、来保存三角形面片 :structTriangledoubleVector3;/三角面片法矢量的 3 个分量doubleVertex3 儿 3;/三个顶点的三维坐标因此,STL 文件所有三角形面片的数据可由 Triangle 结构类型的结构体数组mtrianglei来记录 ,其中变量 i 用来标识该数组记录的是第 i 个三角面片的特征值.1.2 绘制三维实体在 OpenGL 函数库中,提供了直接渲染三角形面片的函数 glBegin(GLTRIANGLES),根据 STL 文件记录的三角面片三顶点坐标和法矢量信息,利用OpenGL 可完成三角面片的绘制,其中三角面片的法矢量决定三角面片在顶点上接受
8、光照的量,因此设置一定光照模型和材质属性,经添加纹理,消隐处理,可实现 STL 格式实体的真实感图形 J 显示.图 1 所示的人体髋关节是经等值面法 l4J 重建而成,构成等值面的 13426 个三角面片以 STL 文件格式保存,利用 OpenGL 读取 STL 文件数据,完成三角面片绘制,从而实现一定光照模式下 STL 格式实体的真实感图形显示 .从图 l 中看出,按照 STL 格式文件进行三维绘制的实体,其外部结构特征获得了良好的真实感图形显示,但出现了较严重的“鳞状效应“ 和伪像,须改善重建实体的表面光滑度,增强其真实感图形显示效果.2 增强实体真实感图形显示效果图 1 髋关节 sTL
9、显示实例2.1 等值面的矢量场平滑在一定的光照模式下经浓淡绘制而得到的三维图像可视性较差,导致结果出现“鳞状效应“和伪像 ,是因为三角形面片的位置与方向极容易受到体数据场中噪声的干扰,相邻的三角面片在法向上缺乏连续性与相关性,因此对构成等值面的法向矢量场作方向平滑处理,以期获得理想的等值面平滑效果.等值面的矢量场平滑处理是按照 STL 文件格式要求 ,首先将构成等值面的三角面片集力 0(t,i=l,2,z(其中:为三角面片 t 的法向单位矢量)分解为一个三维坐标场 M(力 0):tli=l,2,z和一个法向矢量场 v(力 0):1i=1,2,z,然后对等值面上的法向矢量场 v(力 0)作平滑处
10、理.假设搜索出的任一三角面片 t.在其等值面邻域里的三角面片分别为 t1,t2,t,它们对应的法向矢量为 Nfl2,(见图 2),对 0,Nfl2,求矢量均值 N 棚c,=塞用 N0 替代()作为该三角面片 t0 新的法矢量,按上述方法遍历等值面上原法图2sTI 格式三角面片集向矢量场 v(力.) 的所有元素,得到平滑后的等值面法向矢量场 v(力 0):N1i=l,2,z,则原等值面力 0 就变为力()(t,Ni=l,2, ,z.由此可见,等值面方向平滑方法并不改变原等值面上三角面片的坐标位置,面是根据光照模型的浓淡绘制原理,通过提高等值面上三角面片法向矢量之间的连续性与相关性来取得三维绘制的
11、平滑效果,由于平滑时选择的等值面邻域的几何范围极其微小,所以在人眼视觉范围内并不会损失等值面的边界与轮廓细节.经等值面方向平滑处理后,STL 格式的人体髋关节重新绘制结果见图 3.对照平滑前后效果图,STL 格式实体的真实感图形显示效果得到显着改善,较好地去除了“鳞状效应“ 和伪像,重建实体局部细节的清晰度与真实感明显提高,但由于采用三角面片渲染绘制三维实体的办法,断面层间“痕迹“ 明显 .2.2 三角 Bernstein.B6zier 曲面重构要消除断面层间“痕迹“, 改善视觉 “刀砌“感,其实就是要解决三角面片在公共边界处的几何连续拼接问74 武汉理上大学 2005 年 11 月题,而三角
12、 BernsteinB6zier 曲面在一定条件下能较好地满足拼合处几何连续性要求,因此,采用三角曲面重构是一有效的办法.在空间三角形上构造插值于 3 个角点的 3 次三角BB 曲面,也即确定其控制顶点(见图 4),根据 STL 格式文件记录的空间三角形 3 个角点坐标和法矢信息,可构造三角 BB 曲面,其方法和步骤 l5_为:1)空间三角形的 3 个角点分别作为控制顶点1oVo0V!0,V.30.0.;.,.图 3 方向平滑后的髋关节图 4:刍脚曲面控制2)确定边界上的其它控制顶点.设顶点 Voo3,一.一顶-点.与-三 u角薮V03【J,V3()0 上的法矢分别为 n【】(n(,n30 【
13、),为了使边界 B6zier 曲线光滑,不出现回转,尖点或过于平坦等现象,切矢可取边界曲线的弦矢量在切平面上的正投影所指的方向,模长取为弦长_6J,这样使得网格点分布均匀.经计算后,处于边界的 9 个控制顶点为V210=V300+f(V33(),n300),V120=V030f(V330,03(),V021=V030+f(V033,n030),V012=V()()3 一/(V033,003),V102=V003+/(V303,n0()3),V201=V300.厂(V303,n3()(),式中函数(V,) 为/(V,)=lV3)确定控制顶点 V111V3()()在上述三角曲面构造原理的基础上,经
14、三维绘制的真实感图形显示结果见图图 5三角曲面重构的髋关节5.由图 5 可知,在三角网格上进行 3 次三角 BB 曲面重构取得了预期效果,有效地解决了三角面片在公共边界处的光滑拼接问题,消除了视觉上的断面层问“痕迹“, 增强了重建实体的真实度与可视性,实现了 STL格式髋关节的真实感图形显示效果.3 结语通过对人体髋关节实体的三维绘制,提出了实现 STL 格式实体真实感图形显示的基本方法,围绕重建实体真实度与可视性问题,对三角面片集的法矢量场进行了方向平滑处理,并应用三角 BernsteinB6zier 曲面重构理论进行三维重构,实验证明,上述方法显着改善了实体真实感图形显示效果;另外,通过设
15、置一定光照模型和材质属性,经添加纹理及消隐处理,均可增强其可视化效果.参考文献1PrashantKulkarni.AnAccurateSlicingProcedureforLayeredManufacturingJ.Computer-AidedDesign,1996,28(9):683697.2陈作柄,胡新字 ,李世普,等.利用 DICOM 图片实现 CT 图像的二维重建J.武汉理工大学,2005,27(2):52-54.3白燕斌,史惠康 .OpenGI 三维图形库编程指南M. 北京: 机械工业出版社,1998.4ZhouC,ShuR,KankanhalliMS.HandlingSmallFeaturesinIscxsurfaceGenerationUsingMarchingCubesJ.ComputersandGraphics,1994,18(6):845-848.5FarinG.CurvesandSurfacesforComputerAidedGeometricDesign:APracticalGuideM.Washington:AcademicPres,1993.6张鲜.CAD/CAM 中参数 Bemstdn-tzier 三角曲面造型方法的研究R.北京: 北京航空航天大学机械工程学院,1992.卜加+m+加ll