CN113688557A - 一种基于粒子位置动力学的柔体实时切割仿真方法 - Google Patents
一种基于粒子位置动力学的柔体实时切割仿真方法 Download PDFInfo
- Publication number
- CN113688557A CN113688557A CN202111070727.3A CN202111070727A CN113688557A CN 113688557 A CN113688557 A CN 113688557A CN 202111070727 A CN202111070727 A CN 202111070727A CN 113688557 A CN113688557 A CN 113688557A
- Authority
- CN
- China
- Prior art keywords
- particle
- particles
- flexible 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/25—Design optimisation, verification or simulation using particle-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/14—Force analysis or force optimisation, e.g. static or dynamic forces
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T90/00—Enabling 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个方向上设置虚拟位置点,每个粒子的虚拟位置点更新规则如下:当粒子在某个方向上有标记时,代表粒子在此方向上相邻的也是粒子,虚拟位置点更新为该方向上粒子位置;如果没有标记,则虚拟位置点由该方向上的粒子方向向量与粒子半径共同确定。
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 true CN113688557A (zh) | 2021-11-23 |
CN113688557B 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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699714A (zh) * | 2013-12-01 | 2014-04-02 | 北京航空航天大学 | 一种基于有限元和无网格耦合的柔性物体实时切割仿真方法 |
US20160175987A1 (en) * | 2014-04-29 | 2016-06-23 | Boe Technology Group Co., Ltd. | Cutting method of flexible display panel, controlling device in the cutting method, and cutting apparatus of flexible display panel |
CN110385720A (zh) * | 2019-07-26 | 2019-10-29 | 南京航空航天大学 | 一种基于深度神经网络的机器人定位误差补偿方法 |
CN110909473A (zh) * | 2019-11-27 | 2020-03-24 | 北京航空航天大学 | 基于SPH与shape matching混合模型的动态流固交互仿真方法 |
-
2021
- 2021-09-13 CN CN202111070727.3A patent/CN113688557B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699714A (zh) * | 2013-12-01 | 2014-04-02 | 北京航空航天大学 | 一种基于有限元和无网格耦合的柔性物体实时切割仿真方法 |
US20160175987A1 (en) * | 2014-04-29 | 2016-06-23 | Boe Technology Group Co., Ltd. | Cutting method of flexible display panel, controlling device in the cutting method, and cutting apparatus of flexible display panel |
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 |
---|---|
CN113688557B (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Garth et al. | Surface techniques for vortex visualization. | |
CN110489778B (zh) | 面向激光刻蚀加工的图形分割方法、激光刻蚀控制系统 | |
Shen et al. | A new line integral convolution algorithm for visualizing time-varying flow fields | |
Zhang et al. | Interactive tensor field design and visualization on surfaces | |
CN107767453B (zh) | 一种基于规则约束的建筑物lidar点云重构优化方法 | |
CN107330903B (zh) | 一种人体点云模型的骨架提取方法 | |
CN111696210A (zh) | 一种基于三维点云数据特征轻量化的点云重构方法及系统 | |
CN101281654A (zh) | 一种基于八叉树的大规模复杂三维场景处理方法 | |
CN112862972A (zh) | 一种表面结构网格生成方法 | |
WO2021203711A1 (zh) | 一种基于几何重建模型的等几何分析方法 | |
Zaharescu et al. | Topology-adaptive mesh deformation for surface evolution, morphing, and multiview reconstruction | |
CN102054296A (zh) | 一种局部刚性网格变形方法 | |
CN116822100B (zh) | 一种数字孪生建模方法及其仿真试验系统 | |
Wang et al. | Efficient boundary extraction of BSP solids based on clipping operations | |
CN116612235A (zh) | 一种多视图几何无人机图像三维重建方法及存储介质 | |
CN112330798A (zh) | 一种基于参数化模型的三维细小物体重建方法 | |
CN115328163A (zh) | 一种巡检机器人雷达里程计的速度与精度优化方法 | |
CN105279788B (zh) | 一种生成物体空间扫掠体的方法 | |
CN113688557A (zh) | 一种基于粒子位置动力学的柔体实时切割仿真方法 | |
Achar et al. | A Comparative Study of Garment Draping Techniques | |
CN116612251A (zh) | 一种基于网格神经渲染和六边形约束的多视角重建方法 | |
CN106408644B (zh) | 三维控制笼构造方法 | |
Pinskiy et al. | An octree-based multiresolution approach supporting interactive rendering of very large volume data sets | |
CN114169108A (zh) | 一种基于数字孪生的减材加工实时仿真方法 | |
CN117872398B (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 |