对刚性材质物体表面网格模型进行钻孔后模型重建的方法技术

技术编号:3808785 阅读:421 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种对刚性材质物体表面网格模型进行钻孔后模型重建的方法,目的是将三维布尔运算问题简化为二维布尔运算问题,降低模型布尔操作中相交检测过程的计算复杂度,使得模型重建具有实时性。技术方案是首先检测与切割曲面相交的三角形面片,将检测到的相交三角形面片曲面外网格顶点移动至切割曲面上,接着对模型表面网格预处理,实现网格模型表面三角形面片的分类划分,最后动态重建布尔运算几何处理中的网格模型。采用本发明专利技术可实现直接采用二维布尔运算处理方法实现三维空间中对网格模型的布尔运算几何处理,省略了对模型表面进行空间划分的过程,简化了相交检测算法,提高了运算效率,达到实时处理的效果。

【技术实现步骤摘要】

本专利技术涉及一种计算机图形学应用领域对刚性材质物体进行几何处理的方法,尤其是沿固定矢量方向。
技术介绍
计算机图形学中的布尔方法是对刚性材质物体进行几何处理的有效方法之一,广 泛应用于计算机辅助设计、虚拟现实、电影特效、动画制作等领域。根据物体模型的物理属 性不同,可以分为弹性物体的布尔处理方法和刚性物体的布尔处理方法。前者通常用于对 软组织结构构成的生物体的切割特效处理,后者则应用于对刚性材质物体的几何处理及不 同模型之间融合特效处理,但经典的布尔处理方法存在表面网格模型重建困难和难以实时 处理等问题。 2001年,Biermann等在ACM SIGGRAPH会议上发表的"A卯roximate Booleanoperations on free-form solids"(《自由形式实体的近似布尔操作方法》)论 文中,将物体表面提取为三角形面片网格模型形式,并采用控制网格对表面网格模型进 行多级聚类划分,得到不同程度的表面网格的简化模型,在相交检测过程中,逐步迭代求 解不同物体模型之间的空间关系,最终得到近似的布尔运算结果。2002年,Museth等在 "ACMTransactions on Graphics,,上发表的"Level set surface editing operators',(《水 平集表面的编辑操作方法》)论文中,采用水平集方法对相交的物体模型表面进行编辑 操作,保证了相交表面细节特征和平滑效果。2003年,Bart等在"ACM Transactions on Graphics,,上发表的"Interactive Boolean operations on Surfel-bo皿ded solids,,(《面 元边界实体的交互式布尔运算方法》)论文中,将物体表面提取为矢量点的集合形式,并 采用基于八叉树的空间分解方法将矢量点集合进行空间排序,实现了对复杂模型的快速、 交互式布尔处理,得到较为精确的结果后,采用点的再采样方法,消除尖锐边缘实现模型 表面平滑。2007年,Smith等在"Computer-Aided Design"上发表的"A topologically robust algorithm for Booleanoperations on polyhedral sh即es using approximate arithmetic"(《针对多面体形状上布尔运算的一种使用近似运算的拓扑健壮性算法》)论 文中,实现了对边界为多面体的物体模型的布尔运算,并使用后续平滑方法对算法得到的 结果数据进行平滑处理,以消除模型中存在的失真部分。2009年,刘冬等人在《计算机辅助 设计与图形学学报》上发表的《改进的布尔方法及其在虚拟ACL中的应用》中对传统布尔方 法进行改进,对模型表面进行空间划分的过程进行了特殊处理,减少了布尔运算中相交检 测过程的计算开销。 沿固定矢量方向对刚性材质物体表面网格模型进行钻孔可以看作对一个固定的 刚性物体模型和一个不断推进的钻头模型之间进行动态的相减(difference)布尔操作。 对于一个待钻孔的刚性物体表面网格模型,它在t时刻可以表示为Q(t) = (V(t),F(t)), 其中V(t)为此时刚性物体表面网格模型的顶点集合,F(t)为此时刚性物体表面网格模型 的表面三角形面片集合。t时刻的钻头表面网格模型表示为A/Cf)-(^"), #《》,其中J^y)为此时钻头表面网格模型的顶点集合,#")为此时钻头表面网格模型的表面三角形面片集合,则t+l时刻得到的钻孔操作结果模型表示为Q (t+l) = Q (t)-M(t+l)。在现有的布尔操作 方法中,动态计算Q (t)-M(t+l)的基本方法为在每一个视觉循环中,根据当前模型Q (t) 和M(t+l)中顶点和表面三角形面片在三维空间中的位置,对两个网格模型进行表面网格 空间划分的预处理操作,并进行相交检测和布尔运算。具体包括以下几个步骤 第一步,根据当前时刻刚性物体表面网格模型所处三维空间中的位置,对模型表面网格进行空间划分的预处理操作。 布尔操作的核心在于对两个参与运算的模型进行相交检测。相交检测的效率直接 影响整个方法的性能。如果采用蛮力检测方法对Q (t)和M(t+l)中的每一对面片分别进 行计算,则每一次相交检测的计算复杂度为0(m(t)n(t+l)),其中m(t)和n(t+l)分别为模 型Q (t)和M(t+l)中的面片数量。对于数据量大的网格模型,这种蛮力检测的方法无疑是 低效的。因此,为节省布尔运算中相交检测的计算开销,各种布尔方法均采用对网格模型表 面面片进行空间划分的预处理来提高相交检测过程的效率。目前有两种常用的相交检测模 型表面空间划分的预处理方法一种是基于空间分解的划分方法, 一种是基于层次包围盒 的划分方法。 第二步,根据预处理生成的空间层次结构,对网格模型进行相交性检测。 为了得到布尔运算的结果模型Q (t)-M(t+l),需要在网格模型Q (t)和M(t+l)之间进行相交性检测。具体的,分为以下两个步骤 步骤1 :检测模型Q (t)位于模型M(t+l)内的表面,并在Q (t)中去除这部分表 面,得到Q (t)位于模型M(t+l)之外的表面模型Q ' (t)。 步骤2:检测模型M(t+l)位于模型Q(t)内的表面,并保留这部分表面,记为 M' (t+l)。 第三步,由相交检测结果分别生成当前时刻布尔运算后的结果网格模型。 首先对M' (t+l)中的所有面片进行反向操作,然后将Q ' (t)与M' (t+l) 重建为一致的三角形面片网格模型,得到钻孔操作的t+l时刻的结果模型Q(t+1)= Q (t)-M(t+l)。 在方法实施中,这三个步骤循环执行,实现时间的推移。在每一个视觉显示循环中得到布尔操作的当前结果,对刚性物体表面网格模型的钻孔操作进行动态仿真。 现有的对图形几何处理的基本布尔方法主要针对计算机辅助设计中模型编辑方面的应用提出,因此在实时性方面没有很高要求。在模型编辑的一次交互活动中, 一般只需要进行一次空间划分的预处理,因此计算复杂度较高的预处理操作不会对方法整体造成大的影响。而在针对钻孔操作的动态三维物体布尔运算中,每一个视觉显示循环中的物体表面网格模型都会发生变化,因此需要重新进行模型空间划分的预处理操作,以便生成更新后的模型空间层次结构。另一方面,对图形几何处理的基本布尔方法第三步中需要将相交检测得到的两部分结果进行合并,重建出一致的三角形面片表面网格模型。在动态三维物体的布尔操作中同样需要在每一个视觉显示循环中进行重建工作,这也将降低整个方法的效率,影响钻孔操作的实时性。
技术实现思路
本专利技术要解决的技术问题在于针对现有基于网格模型表面空间划分布尔方法在 表面网格模型进行布尔运算的几何处理,尤其是沿特定矢量方向的切割处理时预处理过程 复杂和不能实时动态重建表面网格过程的不足,提出一种对刚性材质物体表面网格模型进 行钻孔后模型重建的方法,将三维布尔运算问题简化为二维布尔运算问题,降低模型布尔 操作中相交检测过程的计算复杂度,使得对刚性材质物体表面网格模型进行钻孔后模型重 建具有实时性。 本专利技术的技术方案是 对于一个刚性物体表面网格模型Q本文档来自技高网
...

【技术保护点】
一种对刚性材质物体表面网格模型进行钻孔后模型重建的方法,其特征在于包括以下步骤:    第一步,检测与切割曲面相交的三角形面片,并将检测到的相交三角形面片曲面外网格顶点移动至切割曲面上,包括以下三个步骤:    步骤1,检测二维空间中网格顶点相对于切割曲线的位置:    将三维空间中切割曲面C以二维空间中切割曲线C′和切割矢量n形式进行表示,保持刚性物体表面网格模型Ω中顶点相对于y轴的高度参数不变,检测二维空间中三角形面片与C′是否相交,根据C′形状的不同,分别进行切割类布尔u↓[2],u↓[3]分别为三角形面片的三个顶点,当v↓[i]位于C内部时:u↓[i]=v↓[i],i=1,2,3当v↓[i]位于C外部时:u↓[i]为顶点v↓[i]的投影点,即u↓[i]为位于C上距离v↓[i]最近的顶点;    步骤3,对移动操作后位于模型表面网格的顶点v按以下平滑处理规则进行平滑处理,平滑处理后得到点v′:    1)计算v在切割曲面C上的投影点u,在投影点u位于切割曲面C的邻域内找点v′,方法是判定(v′-u)×n=0是否成立,若成立,将点u按切割矢量n反向移动到点v′,×表示向量的叉积运算;    2)判定(v′-v).n↓[v]=0是否成立,若成立,即判定点v′和点v具有相同矢量方向n↓[v],n↓[v]为v的矢量;    第二步,模型表面网格预处理,实现网格模型表面三角形面片的分类划分,方法是:    步骤1),根据模型表面网格矢量*↓[i]相对于切割矢量n的关系,将模型的表面网格划分为两类:沿切割矢量逆方向的上表面网格集合F↓[i]和沿切割矢量方向的下表面网格集合F↓[k],其中:    F↓[i]={f↓[l]|*↓[l].n<0,f↓[l]∈F,1≤l≤N↓[F]}  (3)    F↓[k]={f↓[l]|*↓[l].n≥0,f↓[l]∈F,1≤l≤N↓[F]}  (4)    其中,矢量*↓[i]为三角形面片f↓[i]=(v↓[i1],v↓[i2],v↓[i3])的法方向,1≤i≤N↓[F],1≤i1,i2,i3≤N↓[V];    *↓[i]=***=(v↓[i2]-v↓[i1])×(v↓[i3]-v↓[i1])  (1)     步骤2),根据布尔运算几何处理中相对于切割曲面的位置不同,应用第一步步骤1的相交检测方法,提取出布尔运算几何处理过程中切割内部区域表面网格集合F↓[j]:    F↓[j]=...

【技术特征摘要】

【专利技术属性】
技术研发人员:熊岳山刘冬王彦臻徐凯陈欣
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:43[中国|湖南]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1