一种基于有限元和无网格耦合的柔性物体实时切割仿真方法

文档序号:6521430阅读:267来源:国知局
一种基于有限元和无网格耦合的柔性物体实时切割仿真方法
【专利摘要】本发明涉及一种基于有限元和无网格耦合的柔性物体实时切割仿真方法,主要针对虚拟手术实时交互式软组织形变与切割仿真算法进行研究并实现,该方法包括以下步骤:通过基于材质的多子域划分及体素化、各子域内有限元建模、各子域间支持多材质的无网格建模、无网格区域及相关有限元子域的耦合、切割操作响应。本方法对仿真算法进行并行化设计,借助GPU强大的计算能力,达到实时交互式效率。
【专利说明】一种基于有限元和无网格耦合的柔性物体实时切割仿真方

法【技术领域】
[0001]本发明属于物理仿真【技术领域】,具体涉及基于有限元和无网格耦合的柔性物体实时切割仿真方法。
【背景技术】
[0002]在计算机图形学领域,形变模型最早由Terzopolous等人引入。关于逼真模拟形变物体的多种方法的很好的总数可以查阅。例如,边界元模型,自适应和多尺度方法,无网格技术以及有限元方法已经被提出。奥布赖恩和霍金斯描述的基于有限元模拟脆性断裂,后来扩大到韧性断裂。Nesme等提出了一种考虑到粗元素拥有不同材料属性的复合元公式。
[0003]切割形变物体的四面体划分方法有Bielser等人引入。为了减少病态元的数量,Nienhuys和van der Stappen提出了沿元素表面切割。Cotinet和Forest等人删除了被切割的元素。降低病型元素的平滑切割被Nienhuys等人通过自适应模型边和面匹配切割面实现。通过将划分限制为几种细分模式,切割所造成的额外模拟元素的数量可以减少。此方法的多分辨率解法由Ganovelli等人提出。虚拟节点算法通过沿切割两侧复制仿真元素和重新分配材质成分避免了病型元素。
[0004]Wicke等引入了多面体细分,分割出事的四面体成多面体然后再进一步细分这些元素。扩展有限元法通过特定的基函数丰富了有限元模型来扑捉仿真元素的间断。Nienhuys和van der Stappen分别实现了扩`展有限元法在虚拟手术和切割2D薄壳。考虑到在粗弹性仿真中的好材料元素,Sifakis剪裁高分辨率材料边界表面模型替代粗仿真模型。
[0005]基于八叉树的液体和气体的物理模拟已经发表。限制和不受限制的八叉树方法都在使用。为了实现小规模细节的高分辨率,焦点之一是派生自适应差分离散方程。Haber和Heldmann引入了在受限制八叉树上求解偏微分方程数值解的有限元离散方法。

【发明内容】

[0006]本发明要解决的技术问题是:提供一种对于多材质模型的柔性形变和切割进行物理仿真方法,并利用GPU硬件的计算能力,提高了计算与绘制效率,该方法主要利用有限元方法对统一材质进行建模同时利用无网格方法对多材质区域进行建模,通过将两种方法进行耦合达到了对多材质模型的柔性形变和切割的物理仿真,并且通过对算法的并行优化使得物理仿真达到交互式效率。
[0007]本发明解决上述技术问题的技术方案为:一种基于有限元和无网格耦合的柔性物体实时切割仿真方法,包括如下步骤:
[0008]步骤(1)、通过基于材质的多子域划分将仿真对象划分成具有各项同性的子域;
[0009]步骤(2)、各子域依据仿真精度要求进行独立的层次细节体素化生成基于八叉树六面体网格;[0010]步骤(3)、各子域根据各自对应的六面体网格进行有限元建模;
[0011]步骤(4)、在各子域间建立无网格采样区域,建立基于材质距离的平滑距离场;
[0012]步骤(5)、在无网格采样区域,基于材质距离场进行无网格方法建模;
[0013]步骤(6)、对无网格区域及所相关的有限元子域进行耦合;
[0014]步骤(7)、当切割操作发生时,对切割所涉及到的有限元区域进行网格细分并通过克隆网格体现拓扑变化,并在新生成的有限元区域上重新进行无网格方法建模。
[0015]进一步的,步骤(I)包括:读取OBJ模型数据,根据材质边界曲面函数将对模型建立子域划分投票函数(voting function)。
[0016]进一步的,步骤(2)包括:建立模型整体的AABB包围盒作为基于八叉树的六面体网格根节点,如果当前六面体空间内包含模型元素:顶点、三角面片和材质边界曲面,且没有达到最高层次精度,则对该六面体进行剖分并对新生成的8个子六面体重复上述操作;当所有六面体网格均符合上述条件时,停止操作,并对八叉树的叶子节点上的六面体元素使用其中心点作为输入参数调用步骤(I)中的子域划分投票函数确定其所属的子域;该步骤(2 )最终生成了 一个反应模型表面和材质分界特征的层次化八叉树六面体网格。
[0017]进一步的,步骤(3)包括:为了提高计算效率,采用线性基,并生成六面体有限元形函数以及形函数的三维空间导数,并以此构建形函数矩阵和应变矩阵;根据当前域所属的材质属性构建材质矩阵,所述的材质属性为杨氏模量和泊松比,依据有限元公式组织局部刚度矩阵、质量矩阵和施力向量。
[0018]进一步的,步骤(4)包括:对包含材质边界的六面体网格取其二环邻域并将所涉及的六面体网格作为无网格方法的积分背景网格,随机均匀分配采样点,并为每一个高斯积分点建立局部影响域内采样点间的材质距离场。
[0019]进一步的,步骤(5)包括:根据步骤(4)所得到的距离场生成针对高斯积分点的移动最小二乘近似(Moving Least Square Approximation)的权函数,并得到满足移动最小二乘近似的位移函数的形函数,从而得到了对多材质区域的无网格方法建模。
[0020]进一步的,步骤(6)包括:找出同属于无网格区域和有限元区域的六面体网格,将步骤(3)和步骤(5)所得到的位移函数的形函数通过斜坡函数(Ramp Function)进行联立耦合形成耦合区域的形函数,并根据所生成的形函数生成局部刚度矩阵、质量矩阵和施力向量。
[0021]进一步的,步骤(7)包括:将切割工具建模为有三角面片组成的曲面,当切割操作发生时,通过六面体网格与三角面片做碰撞检测,能够得到被切割的网格,对于粗层次的网格首先要对其进行网格细分以达到仿真精度,对于被切割的六面体进行克隆操作以满足切割所造成的拓扑变化,最后对受影响的区域进行步骤(3)和步骤(4),更新仿真方程。
[0022]本发明的原理在于:
[0023]基于有限元和无网格耦合的柔性物体实时切割仿真方法,包括如下步骤:
[0024]I)基于材质的多子域划分及网格化
[0025]步骤(I )、读取OBJ模型数据,根据材质边界曲面函数将对模型建立子域划分投票函数(voting function)。对于一个网格元素而言,当它只满足一个投票函数时,它被认为是一个内部元素(Interior Element),当它满足多于一个投票函数时,它被认为是边界元素(Boundary Element),否则被认为是外部元素(Exterior Element)不参与运算。[0026]步骤(2)、建立模型整体的AABB包围盒作为基于八叉树的六面体网格根节点,如果当前六面体空间内包含模型元素(顶点、三角面片、材质边界曲面)且没有达到最高层次精度,则对该六面体进行剖分并对新生成的8个子六面体重复上述操作,在剖分的过程中,为了防止出现悬挂点(Hanging Node),需要保证每一个八叉树叶子节点与其邻接节点的层次精度至多相差一个级别,否则也要进行剖分。当所有六面体网格均符合上述条件时,停止操作,并对八叉树的叶子节点上的六面体元素使用其中心点作为输入参数调用步骤(I)中的子域划分投票函数确定其所属的子域。该步骤最终生成了一个反应模型表面和材质分界特征的层次化八叉树六面体网格。
[0027]2)基于网格的物理建模
[0028]步骤(3)、为了提高计算效率,本方法采用线性基(P = [l,x,y,z]),并生成六面体有限元形函数以及形函数的三维空间导数,并以此构建形函数矩阵和应变矩阵。根据当前域所属的材质属性(杨氏模量和泊松比)构建材质矩阵。依据有限元公式组织局部刚度矩阵、质量矩阵和施力向量。由于步骤(2)所生成的六面体网格形状是相同的只是尺寸不同,本方法只需要计算上述矩阵一次,通过乘以不同的放缩因子得到不同尺寸的对应矩阵。
[0029]步骤(4)、对包含材质边界的六面体网格取其二环邻域并将所涉及的六面体网格作为无网格方法的积分背景网格,随机均匀分配采样点,并为每一个高斯积分点建立局部影响域内采样点间的材质距离场。距离场测量采用测地线方法,利用单元最短路算法对支持域内采样点进行计算,为了体现多材质特性,本方法提出一种包含材质属性的两点间距离度量函数,用此函数可以得到支持多材质的平滑距离场。
[0030]步骤(5)、根据步骤(4)所得到的距离场生成针对高斯积分点的移动最小二乘近似(Moving Least Square Approximation)的权函数,并得到满足移动最小二乘近似的位移函数的形函数,从而得到了对多材质区域的无网格方法建模。
[0031]步骤(6)、找出同属于无网格区域和有限元区域的六面体网格,将步骤(3)和步骤(5)所得到的位移函数的形函数通过斜坡函数(Ramp Function)进行联立耦合形成耦合区域的形函数,并根据所生成的形函数生成局部刚度矩阵、质量矩阵和施力向量。将步骤(3)和步骤(6)所得到的局部矩阵根据全局自由度发布到全局,由于有限元方法和无网格方法具有紧支特性,所以得到的全局矩阵具有稀疏特性,利用预条件共轭梯度方法(Preconditioned Conjugate Gradient Method)求解,得到了所有米样点的位移向量。为了进行动态仿真,需要采用NewMark隐式积分方法,利用所得到的位移向量计算采样点的速度向量和加速度向量。
[0032]3)切割操作响应
[0033]步骤(7)、本方法将切割工具建模为有三角面片组成的曲面,当切割操作发生时,通过六面体网格与三角面片做碰撞检测,可以得到被切割的网格,对于粗层次的网格首先要对其进行网格细分以达到仿真精度,对于被切割的六面体进行克隆操作以满足切割所造成的拓扑变化,最后对受影响的区域进行步骤(3)和步骤(4),更新全局方程组。对于切割造成的模型表面的几何变化采用Delaunay三角化进行更新。
[0034]本发明与现有技术相比的有点在于:
[0035]本发明能够对多材质柔性物体的变形和切割进行实时物理仿真。本发明主要有两点贡献:第一,提出了一种基于材质距离的无网格建模方法,该方法可以有效地对多材质和几何形状复杂的物体进行仿真。第二,给出了一种基于多尺度的局部有限元与全局无网格耦合方法,该方法可以对多材质柔性物体进行材质区域划分,根据区域的重要性进行多尺度建模,并且支持实时形变和交互式切割操作。
【专利附图】

【附图说明】
[0036]图1为算法整体流程图;
[0037]图2为模型初始化流程图;其中,(a)初始模型;(b)材质分区后模型;(C)基于八叉树体素化网格;
[0038]图3为层次化六面体网格结构剖面图;
[0039]图4为测地线计算距离场示意图;
[0040]图5为平滑距离场示意图;
[0041]图6为切割响应操作示意图;其中,(a)初始网格;(b)发生切割的细分网格和克隆元;
[0042]图7为表面三角网格分割算法示意图;其中,Ca)分割前表面三角网格;(b)分割后表面二角网格;
[0043]图8为多材质形变物体仿真输出;其中,(a)纹理输出;(b)仿真网格输出;
[0044]图9为多材质形变物体切割仿真输出;其中,Ca)纹理输出;(b)表面三角网格输出。
【具体实施方式】
[0045]图1给出了基于有限元和无网格耦合的柔性物体实时切割仿真过程的总体处理流程,下面结合其他附图及【具体实施方式】进一步说明本发明。
[0046]本发明提供一种基于有限元和无网格耦合的柔性物体实时切割仿真方法,主要步骤介绍如下:
[0047]步骤(I)根据输入的OBJ模型(见图2 (a))和材质边界方程建立子域划分投票函数(voting function, Vi (x, y, z), i = 0..m, m为材质边界个数)。其中投票函数以空间点坐标为输入参数,当空间坐标包含在所表示的材质域内返回1,否则返回O。图2 (b)表示了当前模型自上而下拥有四种材质,以不同颜色表示不同的材质属性。
[0048]步骤(2)建立模型整体的AABB包围盒作为基于八叉树的六面体网格根节点,如果当前六面体空间内包含模型元素(顶点、三角面片、材质边界曲面)且没有达到最高层次精度,则对该六面体进行剖分并对新生成的8个子六面体重复上述操作,在剖分的过程中,为了防止出现悬挂点(Hanging Node),需要保证每一个八叉树叶子节点与其邻接节点的层次精度至多相差一个级别,否则也要进行剖分。当所有六面体网格均符合上述条件时,停止操作,并对八叉树的叶子节点上的六面体元素使用其中心点作为输入参数调用步骤(I)中的子域划分投票函数确定其所属的子域。该步骤最终生成了一个反应模型表面和材质分界特征的层次化八叉树六面体网格。图2 (c)表示了全局六面体网格,图3表示了模型内部的层次化六面体网格。
[0049]步骤(3)本方法采用线性基(P = [l,x,y,z]),并生成六面体有限元形函数(公式
I)以及形函数的三维空间导数(公式2),其中ζ,η, μ为局部坐标,f为施加的外力,并以此构建形函数矩阵和应变矩阵。
【权利要求】
1.一种基于有限元和无网格耦合的柔性物体实时切割仿真方法,其特征在于:包括如下步骤: 步骤(1)、通过基于材质的多子域划分将仿真对象划分成具有各项同性的子域; 步骤(2)、各子域依据仿真精度要求进行独立的层次细节体素化生成基于八叉树六面体网格; 步骤(3)、各子域根据各自对应的六面体网格进行有限元建模; 步骤(4)、在各子域间建立无网格采样区域,建立基于材质距离的平滑距离场; 步骤(5)、在无网格采样区域,基于材质距离场进行无网格方法建模; 步骤(6)、对无网格区域及所相关的有限元子域进行耦合; 步骤(7)、当切割操作发生时,对切割所涉及到的有限元区域进行网格细分并通过克隆网格体现拓扑变化,并在新生成的有限元区域上重新进行无网格方法建模。
2.根据权利要求1所述的基于有限元和无网格耦合的柔性物体实时切割仿真方法,其特征在于步骤(1)包括:读取OBJ模型数据,根据材质边界曲面函数将对模型建立子域划分投票函数(voting function)。
3.根据权利要求1所述的基于有限元和无网格耦合的柔性物体实时切割仿真方法,其特征在于步骤(2)包括:建立模型整体的AABB包围盒作为基于八叉树的六面体网格根节点,如果当前六面体空间内包含模型元素:顶点、三角面片和材质边界曲面,且没有达到最高层次精度,则对该六面体进行剖分并对新生成的8个子六面体重复上述操作;当所有六面体网格均符合上述条件时,停止操作,并对八叉树的叶子节点上的六面体元素使用其中心点作为输入参数调用步骤(1)中的子域划分投票函数确定其所属的子域;该步骤(2)最终生成了一个反应模型表面和材质分界特征的层次化八叉树六面体网格。
4.根据权利要求1所述的基于有限元和无网格耦合的柔性物体实时切割仿真方法,其特征在于步骤(3)包括:为了提高计算效率,采用线性基,并生成六面体有限元形函数以及形函数的三维空间导数,并以此构建形函数矩阵和应变矩阵;根据当前域所属的材质属性构建材质矩阵,所述的材质属性为杨氏模量和泊松比,依据有限元公式组织局部刚度矩阵、质量矩阵和施力向量。
5.根据权利要求1所述的基于有限元和无网格耦合的柔性物体实时切割仿真方法,其特征在于步骤(4)包括:对包含材质边界的六面体网格取其二环邻域并将所涉及的六面体网格作为无网格方法的积分背景网格,随机均匀分配采样点,并为每一个高斯积分点建立局部影响域内采样点间的材质距离场。
6.根据权利要求1所述的基于有限元和无网格耦合的柔性物体实时切割仿真方法,其特征在于步骤(5)包括:根据步骤(4)所得到的距离场生成针对高斯积分点的移动最小二乘近似(Moving Least Square Approximation)的权函数,并得到满足移动最小二乘近似的位移函数的形函数,从而得到了对多材质区域的无网格方法建模。
7.根据权利要求1所述的基于有限元和无网格耦合的柔性物体实时切割仿真方法,其特征在于步骤(6)包括:找出同属于无网格区域和有限元区域的六面体网格,将步骤(3)和步骤(5)所得到的位移函数的形函数通过斜坡函数(Ramp Function)进行联立耦合形成耦合区域的形函数,并根据所生成的形函数生成局部刚度矩阵、质量矩阵和施力向量。
8.根据权利要求1所述的基于有限元和无网格耦合的柔性物体实时切割仿真方法,其特征在于步骤(7)包括:将切割工具建模为有三角面片组成的曲面,当切割操作发生时,通过六面体网格与三角面片做碰撞检测,能够得到被切割的网格,对于粗层次的网格首先要对其进行网格细分以达到仿真精度,对于被切割的六面体进行克隆操作以满足切割所造成的拓扑变化 ,最后对受影响的区域进行步骤(3)和步骤(4),更新仿真方程。
【文档编号】G06F17/50GK103699714SQ201310628851
【公开日】2014年4月2日 申请日期:2013年12月1日 优先权日:2013年12月1日
【发明者】王莉莉, 杨晨, 侯飞, 秦洪 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1