CN103324784B - 一种基于局部约束的网格模型碰撞处理方法 - Google Patents

一种基于局部约束的网格模型碰撞处理方法 Download PDF

Info

Publication number
CN103324784B
CN103324784B CN201310210350.6A CN201310210350A CN103324784B CN 103324784 B CN103324784 B CN 103324784B CN 201310210350 A CN201310210350 A CN 201310210350A CN 103324784 B CN103324784 B CN 103324784B
Authority
CN
China
Prior art keywords
collision
triangle
grid model
summit
overbar
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
CN201310210350.6A
Other languages
English (en)
Other versions
CN103324784A (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.)
It Seems Hangzhou Extension Technology Co Ltd
Original Assignee
Hangzhou Dianzi 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 Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN201310210350.6A priority Critical patent/CN103324784B/zh
Publication of CN103324784A publication Critical patent/CN103324784A/zh
Application granted granted Critical
Publication of CN103324784B publication Critical patent/CN103324784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于局部约束的网格模型碰撞处理方法。现有方法计算速度慢,不适用于对实时性要求高的场合。本发明包括如下步骤:步骤(1)只考虑内力作用,使物体运动到下一时刻;步骤(2)用离散碰撞检测方法检测碰撞对并施加惩罚力;步骤(3)采用连续碰撞检测方法得到碰撞对,并施加基于局部约束的碰撞冲量将碰撞对分开。本发明通过利用连续碰撞检测方法和基于局部约束的碰撞处理方法,对网格模型进行运动仿真,改善了之前方法存在的“穿透现象”,大大提高了碰撞处理的整体效率和速度。

Description

一种基于局部约束的网格模型碰撞处理方法
技术领域
本发明属于计算机仿真技术领域,具体涉及一种基于局部约束的网格模型碰撞处理方法。
背景技术
基于三角形网格的离散碰撞检测(DCD)检测在固定时刻物体之间是否存在接触,但是对于高速碰撞的物体,采用该方法会遗漏碰撞。为了解决这个问题,我们引入了连续碰撞检测(CCD)。
CCD通过插值获得物体在两个位置之间的运动路径,进而检测在这个运动过程中哪些部位发生了碰撞。该方法首先利用包围盒重叠测试输出存在重叠的包围盒对,然后通过精确碰撞检测来判断包围盒所对应的三角形是否发生了碰撞,而三角形对的精确碰撞检测过程又可分解为6种碰撞情况的检测:6种顶点/三角形之间碰撞检测。该方法被广泛地应用于物理现象仿真、虚拟现实、人工智能等多个领域。
对于碰撞检测阶段得到的碰撞对,通常采用两类方法处理。其一是基于全局约束的碰撞处理方法,该方法的提出基于一个事实:由于网格模型中的三角形单元与周围单元存在连接关系,所以,任何碰撞对都不是独立的,它也会对相邻单元造成影响。基于此,研究人员提出了多种基于全局优化的求解方法。但是这类方法存在一个不足,计算速度慢,不适用于对实时性要求高的场合。所以,有人提出了另一类基于局部约束的求解方法,该方法将三角形碰撞对分解成点/三角形碰撞对,然后分别处理,大大提高了碰撞处理速度。
发明内容
针对现有技术所存在的上述技术缺陷,本发明提供了一种基于局部约束的网格模型碰撞处理方法,利用连续碰撞检测方法和基于局部约束的碰撞处理方法,对网格模型进行运动仿真,改善了之前方法存在的“穿透现象”,提高了碰撞处理的整体效率和速度。
一种基于局部约束的网格模型碰撞处理方法,包括如下步骤:
步骤(1)在当前时刻,网格模型在自身内力的作用下,计算出在时间段内网格模型各个顶点的位移和平均速度,进而得到下一时刻网格模型各个顶点的坐标;
步骤(2)对更新后的网格模型各顶点位置,采用离散碰撞检测方法得到点/三角形碰撞对,进而计算碰撞对中点与三角形之间的碰撞力,将碰撞力施加到不同顶点上,得到碰撞后时间段内碰撞后的位移、平均速度,进而得到下一时刻网格模型各个顶点的坐标;
所述的更新指网格模型经过时间段的自身内力作用后。
所述的六个点/三角形测试对是由三角形对中其中一个三角形的顶点和三角形对中另一个三角形共同形成的。
步骤(3)在网格模型从当前时刻到下一时刻的运动过程中,采用连续碰撞检测方法,检测得到碰撞对,进而采用局部约束法计算碰撞对中点与三角形的平均速度和冲量,进而得到下一时刻网格模型各个顶点的坐标。
所述的步骤(3)中,采用局部约束法求解的碰撞后的平均速度和冲量,进而得到下一时刻网格模型各个顶点的坐标,包括如下步骤:
3-1.利用连续碰撞检测方法得到的点/三角形碰撞对,获取当前时刻待处理点及其在待处理三角形上投影点的三维坐标、平均速度及网格模型厚度;
3-2.使用公式分别计算碰撞后待处理点P及其在三角形投影点T的平均速度,通过公式分别计算处理点P及其在三角形投影点T处的碰撞冲量;其中,分别表示P、T碰撞前的平均速度,分别表示P、T的质量,h表示网格模型厚度,为时间步长;
3-3.利用速度-位移公式计算下一时刻网格模型各个顶点的位移,进而求得各个顶点的三维坐标。
所述的步骤(3)中,利用连续碰撞检测方法得到碰撞对,包括如下步骤:
3-4.对待检测的三角形网格模型中的每个三角形构造对应的包围盒,进而建立三角形网格模型的包围盒层次结构;
3-5.根据所述的包围盒层次结构,构建包围盒测试树,输出存在包围盒重叠的叶节点;
3-6.将步骤3-5输出的叶节点对应的三角形进一步分解为点/三角形对,进行精确连续碰撞检测。
所述的步骤(1)中的模型内力计算方法,步骤(2)中的离散碰撞检测方法、计算碰撞对中点与三角形之间碰撞力的方法均为现有方法。
本发明有益效果如下:
本发明通过利用连续碰撞检测方法和基于局部约束的碰撞处理方法,对网格模型进行运动仿真,改善了之前方法存在的“穿透现象”,大大提高了碰撞处理的整体效率和速度。
附图说明
图1为本发明流程示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的连续碰撞检测方法进行详细说明。
如图1所示,一种基于局部约束的网格模型碰撞处理方法,包括如下步骤:
步骤(1)在当前时刻,网格模型在自身内力的作用下,计算出在时间段内网格模型各个顶点的位移和平均速度,进而得到下一时刻网格模型各个顶点的坐标;
步骤(2)对更新后的网格模型各顶点位置,采用离散碰撞检测方法得到点/三角形碰撞对,进而计算碰撞对中点与三角形之间的碰撞力,将碰撞力施加到不同顶点上,得到碰撞后时间段内碰撞后的位移、平均速度,进而得到下一时刻网格模型各个顶点的坐标;
所述的更新指网格模型经过时间段的自身内力作用后。
所述的六个点/三角形测试对是由三角形对中其中一个三角形的顶点和三角形对中另一个三角形共同形成的。
步骤(3)在网格模型从当前时刻到下一时刻的运动过程中,采用连续碰撞检测方法,检测得到碰撞对,进而采用局部约束法计算碰撞对中点与三角形之间的平均速度和冲量,进而得到下一时刻网格模型各个顶点的坐标。
采用局部约束法求解的碰撞后的平均速度和冲量,进而得到下一时刻模型各个顶点的坐标,包括如下步骤:
3-1.利用连续碰撞检测方法得到的点/三角形碰撞对,获取当前时刻待处理点及其在待处理三角形上投影点的三维坐标、平均速度及网格模型厚度;
3-2.使用公式分别计算碰撞后待处理点P及其在三角形投影点T的平均速度,通过公式分别计算处理点P及其在三角形投影点T处的碰撞冲量;其中,分别表示P、T碰撞前的平均速度,分别表示P、T的质量,h表示网格模型厚度,为时间步长;
3-3.利用速度-位移公式计算下一时刻网格模型各个顶点的位移,进而求得各个顶点的三维坐标。
利用连续碰撞检测方法得到碰撞对,包括如下步骤:
3-4.对待检测的三角形网格模型中的每个三角形构造对应的包围盒,进而建立三角形网格模型的包围盒层次结构;
3-5.根据所述的包围盒层次结构,构建包围盒测试树,输出存在包围盒重叠的叶节点;
3-6.将步骤3-5输出的叶节点对应的三角形进一步分解为点/三角形对,进行精确连续碰撞检测。
步骤3-4中,为三角形网格柔性场景模型建立包围盒层次结构,包括如下步骤:
a.计算出三角形网格柔性场景模型中每个三角形的中心;
b.通过采用坐标轴投影分割法对所有三角形中心进行划分:将所有三角形中心分别投影到三维坐标系的x、y、z轴上,
b1.选取轴上相距最远的两个三角形中心投影之间的距离,将其中距离最大的轴作为投影轴,将投影轴上相距最远的两个三角形中心投影为端点的线段,平分成两个子线段;若该子线段对应的三角形网格柔性场景模型的局部只有一个三角形中心或没有三角形中心,则跳转到步骤c;
b2.将子线段对应的三角形网格柔性场景模型的局部继续投影到三维坐标系的x、y、z轴上,选取轴上相距最远的两个三角形中心投影之间的距离,将其中距离最大的轴作为投影轴,将投影轴上相距最远的两个三角形中心投影为端点的线段,平分成两个子线段;
b3.若步骤d2的子线段对应的三角形网格柔性场景模型的局部只有一个三角形中心或没有三角形中心,则进入步骤c,否者重复步骤b2;
c.采用自底向上的方法为整个三角形网格柔性场景模型建立对应的包围盒层次结构。
步骤3-5中,当进行第n次碰撞检测时,包围盒层次结构是根据第n次碰撞检测时刻每个三角形更新后的空间位置,对上一次碰撞检测过程的包围盒层次结构中最底层的包围盒进行重构,进而自底向上对上一次碰撞检测过程的包围盒层次结构进行整理更新而成的,n为大于1的自然数。
步骤3-6中,基于厚度的连续碰撞检测方法包括如下步骤:
d.将输出的叶节点对应的三角形对分解为六个点/三角形测试对,获取前一时刻和当前时刻待检测三角形三个顶点的三维坐标、待检测点的三维坐标、待检测三角形的法向量、三角形网格柔性场景模型厚度;
e.计算满足值,如果,则进一步判断待检测点在三角形所在平面投影是否在三角形内部,若是,则判定待检测点和三角形发生了碰撞;其中:
分别为前一时刻待检测三角形三个顶点的三维坐标,分别为当前时刻待检测三角形三个顶点的三维坐标,分别为前一时刻和当前时刻待检测三角形的法向量,为三角形网格柔性场景模型厚度,分别为前一时刻和当前时刻待检测点的三维坐标,为误差修正值。

Claims (1)

1.一种基于局部约束的网格模型碰撞处理方法,其特征在于包括如下步骤:
步骤(1):在当前时刻tn,网格模型在自身内力的作用下,计算出在Δt时间步长内网格模型各个顶点的位移和平均速度,进而得到下一时刻tn+1网格模型各个顶点的坐标;
步骤(2):对更新后的网格模型各顶点位置,采用离散碰撞检测方法得到点/三角形碰撞对,进而计算碰撞对中点与三角形之间的碰撞力,将碰撞力施加到不同顶点上,得到碰撞后Δt时间步长内碰撞后的位移、平均速度,进而得到下一时刻tn+1网格模型各个顶点的坐标;
步骤(3):在网格模型从当前时刻到下一时刻tn+1的运动过程中,采用连续碰撞检测方法,检测得到碰撞对,进而采用局部约束法计算碰撞对中点与三角形的平均速度和冲量,进而得到下一时刻网格模型各个顶点的坐标;
所述的步骤(3)中,采用局部约束法求解的碰撞后的平均速度和冲量,进而得到下一时刻网格模型各个顶点的坐标,包括如下步骤:
3-1.利用连续碰撞检测方法得到的点/三角形碰撞对,获取当前时刻待处理点及其在待处理三角形上投影点的三维坐标、平均速度及网格模型厚度;
3-2.使用公式 v P ′ = m P v ‾ P + m T v ‾ T - m T h Δ t m P + m T , v T ′ = m P v ‾ P + m T v ‾ T + m P h Δ t m P + m T 分别计算碰撞后待处理点P及其在三角形投影点T的平均速度,通过公式 I P = m P m T ( v ‾ T - h Δ t - v ‾ P ) m P + m T , I T = m P m T ( v ‾ P + h Δ t - v ‾ T ) m P + m T 分别计算处理点P及其在三角形投影点T处的碰撞冲量;其中,分别表示P、T碰撞前的平均速度,mP、mT分别表示P、T的质量,h表示网格模型厚度,Δt为时间步长;
3-3.利用速度-位移公式计算下一时刻网格模型各个顶点的位移,进而求得各个顶点的三维坐标;
所述的步骤(3)中,利用连续碰撞检测方法得到碰撞对,包括如下步骤:
3-4.对待检测的三角形网格模型中的每个三角形构造对应的包围盒,进而建立三角形网格模型的包围盒层次结构;
3-5.根据所述的包围盒层次结构,构建包围盒测试树,输出存在包围盒重叠的叶节点;
3-6.将步骤3-5输出的叶节点对应的三角形进一步分解为点/三角形对,进行精确连续碰撞检测;
所述的步骤(1)中的模型内力计算方法,步骤(2)中的离散碰撞检测方法、计算碰撞对中点与三角形之间碰撞力的方法均为现有方法。
CN201310210350.6A 2013-05-30 2013-05-30 一种基于局部约束的网格模型碰撞处理方法 Active CN103324784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310210350.6A CN103324784B (zh) 2013-05-30 2013-05-30 一种基于局部约束的网格模型碰撞处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310210350.6A CN103324784B (zh) 2013-05-30 2013-05-30 一种基于局部约束的网格模型碰撞处理方法

Publications (2)

Publication Number Publication Date
CN103324784A CN103324784A (zh) 2013-09-25
CN103324784B true CN103324784B (zh) 2016-05-18

Family

ID=49193526

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310210350.6A Active CN103324784B (zh) 2013-05-30 2013-05-30 一种基于局部约束的网格模型碰撞处理方法

Country Status (1)

Country Link
CN (1) CN103324784B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615893B (zh) * 2015-02-13 2017-12-26 华东师范大学 基于泰勒模型的提高连续碰撞检测效率的方法
CN104637086B (zh) * 2015-02-13 2017-09-19 华东师范大学 基于文森特定理的高效连续碰撞检测方法
JP6857649B2 (ja) * 2016-04-15 2021-04-14 川崎重工業株式会社 外科手術システムの制御方法および外科手術システム
CN112330804B (zh) * 2020-11-12 2021-10-19 中国人民解放军火箭军工程大学 一种局部可变形三维模型接触检测方法
CN112581602B (zh) * 2020-12-09 2023-07-07 北京维盛视通科技有限公司 服装动态模拟方法、装置、电子设备及存储介质
CN112802203B (zh) * 2021-01-18 2023-02-28 华中科技大学鄂州工业技术研究院 一种基于特征的空间哈希连续碰撞检测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253862A (zh) * 2011-04-26 2011-11-23 浙江大学 一种基于SIMD的k-DOP包围盒碰撞检测方法
CN102393825A (zh) * 2011-07-15 2012-03-28 浙江大学 一种基于非共面剔除的柔性场景连续碰撞检测方法
CN102609321A (zh) * 2012-01-30 2012-07-25 华南理工大学 基于K_DOPs快速连续碰撞检测方法
CN102722910A (zh) * 2012-05-18 2012-10-10 浙江大学 一种基于分离轴剔除的体网格场景连续碰撞检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8229716B2 (en) * 2010-01-05 2012-07-24 The United States Of America As Represented By The Secretary Of The Navy Fast tracking methods and systems for air traffic modeling using a Monotonic Lagrangian Grid

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253862A (zh) * 2011-04-26 2011-11-23 浙江大学 一种基于SIMD的k-DOP包围盒碰撞检测方法
CN102393825A (zh) * 2011-07-15 2012-03-28 浙江大学 一种基于非共面剔除的柔性场景连续碰撞检测方法
CN102609321A (zh) * 2012-01-30 2012-07-25 华南理工大学 基于K_DOPs快速连续碰撞检测方法
CN102722910A (zh) * 2012-05-18 2012-10-10 浙江大学 一种基于分离轴剔除的体网格场景连续碰撞检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Fast continuous collision culling with deforming noncollinear filters;Peng Du et al;《Computer animation and virtual worlds》;20120511;全文 *
一种快速精确的连续碰撞检测算法;黄通浪 等;《浙江大学学报》;20060630;全文 *

Also Published As

Publication number Publication date
CN103324784A (zh) 2013-09-25

Similar Documents

Publication Publication Date Title
CN103324784B (zh) 一种基于局部约束的网格模型碰撞处理方法
CN101944144B (zh) 一种基于无网格的布类仿真方法
CN103337091B (zh) 一种基于厚度的柔性场景连续碰撞检测方法
CN103729564B (zh) 一种基于粒子图像测速技术的压力场计算方法和装置
CN103699715A (zh) 一种基于光滑粒子流体动力学和非线性有限元的流固耦合方法
WO2017031718A1 (zh) 弹性物体变形运动的建模方法
RU2012102394A (ru) Способ вычисления физического значения, способ численного анализа, программа вычисления физического значения, программа численного анализа, устройство вычисления физического значения и устройство численного анализа
CN105069826A (zh) 弹性物体变形运动的建模方法
CN100575872C (zh) 基于立体视觉的风洞模型外形监测方法
CN107767453A (zh) 一种基于规则约束的建筑物lidar点云重构优化方法
CN102156785A (zh) 一种动态布料仿真方法
CN102999661A (zh) 基于粒子群优化的并行碰撞检测系统及方法
CN102842043B (zh) 基于自动聚类的粒子群优化分类方法
CN101984443A (zh) 一种改进的柔性织物碰撞处理方法
CN106886980A (zh) 一种基于三维激光雷达目标识别的点云密度增强的方法
CN104915928A (zh) 一种基于本征正交分解的速度场坏矢量识别和修正方法
CN103065305B (zh) 虚拟手术训练系统中基于四面体的组织模型切割方法
CN105021199A (zh) 基于ls 的多模型自适应状态估计方法及系统
CN105069829A (zh) 一种基于多目视频的人体动画生成方法
CN102722910B (zh) 一种基于分离轴剔除的体网格场景连续碰撞检测方法
CN105807093A (zh) 一种基于粒子图像测速技术的加速度测量方法及装置
CN103839280A (zh) 一种基于视觉信息的人体姿态跟踪方法
CN102393825B (zh) 一种基于非共面剔除的柔性场景连续碰撞检测方法
CN102393827A (zh) 一种基于连续法向锥剔除的柔性场景连续碰撞检测方法
CN116244974A (zh) 仿真交通流数据真实性评价方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170418

Address after: 310000 Binjiang District, Hangzhou, No. six and road, a building (North), building B2010, room, two

Patentee after: It seems Hangzhou Extension Technology Co. Ltd.

Address before: Hangzhou City, Zhejiang province 310018 Xiasha Higher Education Park No. 2 street

Patentee before: Hangzhou Electronic Science and Technology Univ