CN113688557B - 一种基于粒子位置动力学的柔体实时切割仿真方法 - Google Patents

一种基于粒子位置动力学的柔体实时切割仿真方法 Download PDF

Info

Publication number
CN113688557B
CN113688557B CN202111070727.3A CN202111070727A CN113688557B CN 113688557 B CN113688557 B CN 113688557B CN 202111070727 A CN202111070727 A CN 202111070727A CN 113688557 B CN113688557 B CN 113688557B
Authority
CN
China
Prior art keywords
particle
particles
soft body
cutting
real
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111070727.3A
Other languages
English (en)
Other versions
CN113688557A (zh
Inventor
潘俊君
赵智源
禹鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN202111070727.3A priority Critical patent/CN113688557B/zh
Publication of CN113688557A publication Critical patent/CN113688557A/zh
Application granted granted Critical
Publication of CN113688557B publication Critical patent/CN113688557B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/25Design optimisation, verification or simulation using particle-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/14Force analysis or force optimisation, e.g. static or dynamic forces
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种基于粒子位置动力学的柔体实时切割仿真方法。基于粒子位置动力学,在NvidiaFlex引擎上实现了粒子切割效果,并通过引入粒子束的概念使切割更加精细。使用Marching Cube算法在粒子模型基础上进行了三维网格的重建,通过对体素进行扩展创新,引入虚拟位置点,解决了在精细切割网格上出现的黏连问题,并通过网格平滑算法提升低分辨率下三维网格的质量。仿真结果体现出了实时性和精细性,准确高效地表现出了切割引起的柔体拓扑结构变化。

Description

一种基于粒子位置动力学的柔体实时切割仿真方法
技术领域
本发明涉及基于物理的柔体实时切割仿真技术领域,具体涉及一种基于粒子位置动力学(Position Based Dynamics,PBD)的柔体实时切割仿真方法。
背景技术
目前,在科研和工程领域中,柔体切割仿真的研究和应用非常广泛,但是由于现有硬件水平的限制和仿真算法的局限性,对柔体切割的实时仿真还存在着提升精确度、提高效率、减少计算量等方面的需求,如何能精准高效地切割柔体,实现高效且灵活的仿真仍是计算机图形学研究中的一个重要问题。
Iago Berndt和Rafael Torchelsen等人在文献《Efficient Surgical Cuttingwith Position-Based Dynamics》中提出了一种使用PBD方法的手术切割模拟方案,该方案使用Nvidia Flex对所有器官进行统一模拟,便于再现一个真实的手术场景。其中,他们在根据体模型重建三维网格时为每个体素计算一个近似的orientation作为Marching Cube算法中该体元内部的坐标轴,从而实现了使用Marching Cube算法重建三维网格的目的。
发明内容
本发明解决的技术问题是:为了提高现有的柔体切割的效率和精度,提供一种基于粒子位置动力学的柔体实时切割仿真方法,通过解决低精度下粒子黏连、粗糙切割、生成网格不光滑的问题,在保证仿真质量的同时降低了计算量,从而提高了效率,满足了可交互的切割场景需求。本发明通过对Iago Berndt等人提出的方法进行改进,在Marching Cube算法中引入虚拟位置点,使得切面两边生成网格时是根据虚拟位置点而非切面另一边的粒子,从而避免了粒子黏连;另一方面通过使用粒子束方法检测被切割粒子从而避免了粗糙切割;上述改进还通过GPU并行加速,实现了实时性和精准性,能够提供更好的仿真效果。
本发明采用的技术方案为:基于粒子位置动力学的柔体实时切割仿真方法,包括以下六个步骤:
步骤(1):将使用mesh表示的三维模型转换成由粒子与簇表示的柔体模型:建立规则的立体网格,对网格中xy平面的每一个位置沿z轴扫描三维模型,当立体网格上的点位于三维模型内部则生成一个粒子。最后将邻近的粒子聚类成簇,得到由粒子与簇表示的柔体模型;
步骤(2):每一帧都对柔体模型使用Nvidia Flex进行仿真模拟,得到当前帧中各粒子的位置与速度;
步骤(3):根据粒子位置与速度,使用粒子束的方法对被切割粒子进行精准检测:将柔体粒子分别看作沿着某个轴向上的粒子束集合,其基准面分别为yoz,xoz以及xoy平面,此时可以得到穿过此切割平面最多的粒子束所在的轴向,假设为x轴。那么切割时将遍历以yoz平面为基准面的整个粒子束,找到每条离子束在x轴上离切割平面距离最近的粒子,这些粒子的集合就是完整的待删除粒子集合;
步骤(4):根据被切割粒子集合,更新粒子状态和簇的状态;
步骤(5):根据更新后的粒子状态,使用Marching Cube算法重新生成三维网格,并绘制该三维网格。Marching Cube算法的改进点为:为每个体素在-x,+x,-y,+y,-z,+z方向上设置6个额外的辅助标记,表示每个方向上需要采样的位置数据。更新规则如下:当前体素在这6个方向上邻接体素如果是粒子,则分别进行标记;如果不是粒子,则不标记。接着在6个方向上设置虚拟位置点,每个粒子的虚拟位置点更新规则如下:当粒子在某个方向上有标记时,代表粒子在此方向上相邻的也是粒子,虚拟位置点更新为该方向上粒子位置;如果没有标记,则虚拟位置点由该方向上的粒子方向向量与粒子半径共同确定;
本发明的原理在于:
本发明提出了基于粒子位置动力学的柔体实时切割仿真方法,将基于mesh表示的三维模型转换为基于粒子与簇的柔体模型,在Nvidia Flex引擎上实现了粒子切割效果,并通过引入粒子束的概念使切割更加精细;使用改进的Marching Cube算法在粒子模型基础上进行了三维网格的重建,通过对体素进行扩展创新,解决了在精细切割网格上出现的黏连问题,并通过网格平滑算法提升低分辨率下三维网格的质量。
本发明的有益积极效果是:
(1)现有的柔体切割方案,检测被切割粒子时基于粒子间距离进行计算,该方法易产生粗糙的切割,本发明提出的粒子束方法能够实现被切割粒子数量的最少化,从而实现精细切割。
(2)本发明应用Marching Cube算法时通过虚拟位置点的方法避免了粒子黏连问题,从而实现了低分辨率下依然良好的切割效果,达到了提升仿真效率的目的,使柔体切割能够具有实时性。
附图说明
图1为本发明基于粒子位置动力学的柔体实时切割仿真方法流程图;
图2为本发明中将使用mesh表示的三维模型转换成由粒子与簇表示的柔体模型的示意图;
图3为使用本发明中提出的粒子束方法进行切割时的仿真效果图;
图4为使用本发明中提出的扩展粒子方法重建三维网格时的仿真效果图;
图5为通过本发明绘制的柔体实施切割的仿真效果图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
结合附图及实施例对本发明进行详细说明。
如图1所示,基于粒子位置动力学的柔体实时切割仿真方法,包括以下六个步骤:
步骤(1):如图2所示,将使用mesh表示的三维模型转换成由粒子与簇表示的柔体模型:建立规则的立体网格,对网格中xy平面的每一个位置沿z轴扫描三维模型,当立体网格上的点位于三维模型内部则生成一个粒子。最后将邻近的粒子聚类成簇,得到由粒子与簇表示的柔体模型;
步骤(2):每一帧,都对柔体模型使用Nvidia Flex进行仿真模拟,得到当前帧中各粒子的位置与速度;
步骤(3):根据粒子位置与速度,使用粒子束的方法对被切割粒子进行精准检测:将柔体粒子分别看作沿着某个轴向上的粒子束集合,依次检测基准面分别为yoz,xoz以及xoy平面时穿过该切割平面的粒子数量最多的平面,假设为yoz平面。那么切割时将遍历以yoz平面为基准面的整个粒子束,找到每条粒子束在x轴上离切割平面距离最近的粒子,这些粒子的集合就是完整的待删除粒子集合;
步骤(4):根据被切割粒子集合,更新粒子状态和簇的状态;
步骤(5):根据更新后的粒子状态,使用Marching Cube算法重新生成三维网格,并绘制该三维网格。Marching Cube算法的改进点为:为每个体素在-x,+x,-y,+y,-z,+z方向上设置6个额外的辅助标记,表示每个方向上需要采样的位置数据。更新规则如下:当前体素在这6个方向上邻接体素如果是粒子,则分别进行标记;如果不是粒子,则不标记。接着在6个方向上设置虚拟位置点,每个粒子的虚拟位置点更新规则如下:当粒子在某个方向上有标记时,代表粒子在此方向上相邻的也是粒子,虚拟位置点更新为该方向上粒子位置;如果没有标记,则虚拟位置点由该方向上的粒子方向向量与粒子半径共同确定;粒子方向向量根据该粒子的邻居情况估计得出的,例如粒子p在初始化阶段,其体素化坐标为(x0,y0,z0),则其方向向量由其六个邻居决定:a(x0-1,y0,z0),b(x0+1,y0,z0),c(x0,y0-1,z0),d(x0,y0+1,z0),e(x0,y0,z0-1),f(x0,y0,z0+1)。以原x轴上的方向向量为例,粒子p在x轴上分别有邻居a和粒子b,那么p在x轴上的方向向量如公式所示(pos(p)为p点位移):
Dirx=(pos(p)-pos(a))-(pos(p)-pos(b))
步骤(6)、重复步骤(3)-(5),直到仿真过程结束,最终完成对柔体的实时切割仿真计算。
因为步骤(3)中我们总是寻找具有最多粒子的基准面对应的粒子束中距离切割平面最近的粒子,从而实现了精准切割。
步骤(5)中虚拟位置点方法避免了在两粒子并不应该有联系的情况下,却因为体素坐标相邻而相互影响导致视觉上的黏连问题。使用虚拟位置点方法的Marching Cube算法在某个轴向上的邻居点不是粒子的情况下会根据其他轴向上的邻居粒子计算方向向量,从而估计出该轴向上的虚拟位置点,以此计算该体素内的三角网格。
图3为使用本发明中提出的粒子束方法进行切割时的仿真效果图,该图可体现出本发明提出的粒子束方法能够进行足够精细的切割,被移除的粒子数量能够最少化;
图4为使用本发明中提出的扩展粒子方法重建三维网格时的仿真效果图,该图可体现出本发明提出的扩展粒子方法能够重建出具有足够好视觉效果的三维网格,被切割的两侧不会出现黏连效果;
图5为通过本发明绘制的柔体实施切割的仿真效果图,该图可体现本发明的仿真方法较好地应用于柔体实施切割,切割效果精细。
本发明未详细阐述的技术内容,如PBD算法、Marching Cube算法、Nvidia Flex等,属于本领域从事物理仿真和柔体仿真的技术人员的公知常识。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术邻域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

Claims (4)

1.基于粒子位置动力学的柔体实时切割仿真方法,其特征在于,包括以下步骤:
步骤(1):将使用mesh表示的三维模型转换成由粒子与簇表示的柔体模型;
步骤(2):每一帧都对步骤(1)得到的柔体模型使用NvidiaFlex进行仿真模拟,得到当前帧中各粒子的位置与速度;
步骤(3):根据步骤(2)得到的粒子位置与速度,使用粒子束的方法对被切割粒子进行精准检测;
步骤(4):基于步骤(3)得到的被切割粒子集合,更新粒子状态和簇的状态;
步骤(5):基于步骤(4)得到的更新后的粒子状态,使用Marching Cube算法重新生成三维网格,并绘制该三维网格;
步骤(6)、重复步骤(3)-(5),直到仿真过程结束,最终完成对柔体的实时切割仿真计算。
2.根据权利要求1所述的基于粒子位置动力学的柔体实时切割仿真方法,其特征在于:所述步骤(1)中,将三维模型转换成柔体模型的过程是:建立规则的立体网格,对网格中xy平面的每一个位置沿z轴扫描三维模型,当立体网格上的点位于三维模型内部则生成一个粒子;最后将邻近的粒子聚类成簇,得到由粒子与簇表示的柔体模型。
3.根据权利要求1所述的基于粒子位置动力学的柔体实时切割仿真方法,其特征在于:所述步骤(3)中,粒子束的方法具体指:将柔体模型中的粒子分别看作沿着某个轴向上的粒子束集合,其基准面分别为yoz,xoz以及xoy平面,此时得到穿过切割平面最多的粒子束所在的轴向,假设为x轴,那么切割时将遍历以yoz平面为基准面的整个粒子束,找到每条离子束在x轴上离切割平面距离最近的粒子,这些粒子的集合就是完整的待删除粒子集合。
4.根据权利要求1所述的基于粒子位置动力学的柔体实时切割仿真方法,其特征在于:所述步骤(5)中,使用的Marching Cube算法为改进后的方法,其改进点为:为每个体素在-x,+x,-y,+y,-z,+z方向上设置6个额外的辅助标记,表示每个方向上需要采样的位置数据,更新规则如下:当前体素在这6个方向上邻接体素如果是粒子,则分别进行标记;如果不是粒子,则不标记;接着在6个方向上设置虚拟位置点,每个粒子的虚拟位置点更新规则如下:当粒子在某个方向上有标记时,代表粒子在此方向上相邻的也是粒子,虚拟位置点更新为该方向上粒子位置;如果没有标记,则虚拟位置点由该方向上的粒子方向向量与粒子半径共同确定。
CN202111070727.3A 2021-09-13 2021-09-13 一种基于粒子位置动力学的柔体实时切割仿真方法 Active CN113688557B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111070727.3A CN113688557B (zh) 2021-09-13 2021-09-13 一种基于粒子位置动力学的柔体实时切割仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111070727.3A CN113688557B (zh) 2021-09-13 2021-09-13 一种基于粒子位置动力学的柔体实时切割仿真方法

Publications (2)

Publication Number Publication Date
CN113688557A CN113688557A (zh) 2021-11-23
CN113688557B true CN113688557B (zh) 2023-11-28

Family

ID=78586291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111070727.3A Active CN113688557B (zh) 2021-09-13 2021-09-13 一种基于粒子位置动力学的柔体实时切割仿真方法

Country Status (1)

Country Link
CN (1) CN113688557B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699714A (zh) * 2013-12-01 2014-04-02 北京航空航天大学 一种基于有限元和无网格耦合的柔性物体实时切割仿真方法
CN110385720A (zh) * 2019-07-26 2019-10-29 南京航空航天大学 一种基于深度神经网络的机器人定位误差补偿方法
CN110909473A (zh) * 2019-11-27 2020-03-24 北京航空航天大学 基于SPH与shape matching混合模型的动态流固交互仿真方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103962730B (zh) * 2014-04-29 2017-01-18 京东方科技集团股份有限公司 一种柔性显示面板切割方法及切割装置、控制装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699714A (zh) * 2013-12-01 2014-04-02 北京航空航天大学 一种基于有限元和无网格耦合的柔性物体实时切割仿真方法
CN110385720A (zh) * 2019-07-26 2019-10-29 南京航空航天大学 一种基于深度神经网络的机器人定位误差补偿方法
CN110909473A (zh) * 2019-11-27 2020-03-24 北京航空航天大学 基于SPH与shape matching混合模型的动态流固交互仿真方法

Also Published As

Publication number Publication date
CN113688557A (zh) 2021-11-23

Similar Documents

Publication Publication Date Title
Garth et al. Surface techniques for vortex visualization.
CN102332180B (zh) 一种基于立体裁剪的三维服装造型与纸样设计方法
Qin et al. Dynamic catmull-clark subdivision surfaces
CN101339669A (zh) 基于正侧面影像的三维人脸建模方法
CN112862972A (zh) 一种表面结构网格生成方法
CN102054296A (zh) 一种局部刚性网格变形方法
WO2021203711A1 (zh) 一种基于几何重建模型的等几何分析方法
CN101877146A (zh) 一种扩充三维人脸数据库的方法
Löffelmann et al. Hierarchical streamarrows for the visualization of dynamical systems
CN113688557B (zh) 一种基于粒子位置动力学的柔体实时切割仿真方法
CN113673186A (zh) 一种基于stl文件的笛卡尔网格快速生成方法
CN111047684A (zh) 一种基于三维模型特征的模型简化方法
CN114638116B (zh) 一种基于三维鞋楦的数字化开板方法
Schvartzman et al. Bounded normal trees for reduced deformations of triangulated surfaces
CN113076571B (zh) 一种三维衣物实时仿真编辑方法及系统
CN115222894A (zh) 一种基于laplace优化的图像拓扑变形方法
JP5269737B2 (ja) 干渉チェック方法、干渉チェック装置、及び干渉チェックプログラム
Shirayama et al. Flow visualization in computational fluid dynamics
Shimada Current trends and issues in automatic mesh generation
CN110610040B (zh) 一种多相材料梯度点阵结构设计方法
Inui et al. Visualization of 3+ 2 Axis Machining Result by Combining Multiple Z-map Models
CN117872398B (zh) 一种大规模场景实时三维激光雷达密集建图方法
Kim et al. Three-dimensional building-cube method for inviscid compressible flow computations
DU et al. Terrain Edge Stitching Based On Least Squares Generative Adversarial Networks
CN116894301B (zh) 基于面元和格子投射的航天器迎风面积数字化获取方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant