CN103337091A - 一种基于厚度的柔性场景连续碰撞检测方法 - Google Patents
一种基于厚度的柔性场景连续碰撞检测方法 Download PDFInfo
- Publication number
- CN103337091A CN103337091A CN2013102116192A CN201310211619A CN103337091A CN 103337091 A CN103337091 A CN 103337091A CN 2013102116192 A CN2013102116192 A CN 2013102116192A CN 201310211619 A CN201310211619 A CN 201310211619A CN 103337091 A CN103337091 A CN 103337091A
- Authority
- CN
- China
- Prior art keywords
- triangle
- flexible
- collision detection
- place
- thickness
- 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
Abstract
本发明公开了一种基于厚度的柔性场景连续碰撞检测方法。现有方法非常耗时,且在很多场合下,模型厚度对碰撞检测的结果影响很大。本发明包括如下步骤:步骤(1)对待检测的三角形网格柔性场景模型中的每个三角形构造对应的包围盒,进而为三角形网格柔性场景建立包围盒层次结构;步骤(2)根据包围盒层次结构,构建包围盒测试树,进而输出存在包围盒重叠的叶节点;步骤(3)对步骤(2)输出的叶节点对应的三角形对进行精确连续碰撞检测。本发明通过构造基于厚度的3次方程,实现了对三角形对进行精确连续碰撞检测的目标,提高了碰撞检测的准确性和效率。
Description
技术领域
本发明属于计算机检测技术领域,具体涉及一种基于厚度的柔性场景连续碰撞检测方法。
背景技术
基于三角形网格的离散碰撞检测(DCD)检测在固定时刻物体之间是否存在接触,但是对于高速碰撞的物体,采用该方法会遗漏碰撞。为了解决这个问题,我们引入了连续碰撞检测(CCD)。
CCD通过插值获得物体在两个位置之间的运动路径,进而检测在这个运动过程中哪些部位发生了碰撞。该方法首先利用包围盒重叠测试输出存在重叠的包围盒对,然后通过精确碰撞检测来判断包围盒所对应的三角形是否发生了碰撞,而三角形对的精确碰撞检测过程又可分解为6个顶点/三角形之间碰撞检测。该方法被广泛地应用于物理现象仿真、虚拟现实、人工智能等多个领域。
但是,目前的连续碰撞检测方法没有考虑模型厚度对检测结果的影响,这是因为传统的基于模型厚度的连续碰撞检测方法需要求解1个一元六次方程,非常耗时。但是,在很多场合下,模型厚度对碰撞检测的结果影响很大,比如柔性物体之间碰撞。
发明内容
针对现有技术所存在的上述技术缺陷,本发明提供了一种基于厚度的柔性场景连续碰撞检测方法,利用求解1个基于厚度的3次方程,实现了对三角形对进行精确连续碰撞检测的目标,提高了碰撞检测的准确性和效率。
一种基于厚度的柔性场景连续碰撞检测方法,包括如下步骤:
步骤(1)对待检测的三角形网格柔性场景模型中的每个三角形构造对应的包围盒,进而为三角形网格柔性场景建立包围盒层次结构;
步骤(2)根据包围盒层次结构,构建包围盒测试树,进而输出存在包围盒重叠的叶节点;
步骤(3)对步骤(2)输出的叶节点对应的三角形对进行精确连续碰撞检测。
所述的步骤(1)中,为三角形网格柔性场景模型建立包围盒层次结构,包括如下步骤:
1-1.计算出三角形网格柔性场景模型中每个三角形的中心;
1-2.通过采用坐标轴投影分割法对所有三角形中心进行划分:将所有三角形中心分别投影到三维坐标系的x、y、z轴上,
1-2-1.选取轴上相距最远的两个三角形中心投影之间的距离,将其中距离最大的轴作为投影轴,将投影轴上相距最远的两个三角形中心投影为端点的线段,平分成两个子线段; 若该子线段对应的三角形网格柔性场景模型的局部只有一个三角形中心或没有三角形中心,则跳转到步骤1-3;
1-2-2.将子线段对应的三角形网格柔性场景模型的局部继续投影到三维坐标系的x、y、z轴上, 选取轴上相距最远的两个三角形中心投影之间的距离,将其中距离最大的轴作为投影轴,将投影轴上相距最远的两个三角形中心投影为端点的线段,平分成两个子线段;
1-2-3.若步骤1-2-2的子线段对应的三角形网格柔性场景模型的局部只有一个三角形中心或没有三角形中心,则进入步骤1-3,否则重复步骤1-2-2;
1-3.采用自底向上的方法为整个三角形网格柔性场景模型建立对应的包围盒层次结构。
所述的步骤(2)中,当进行第n次碰撞检测时,包围盒层次结构是根据第n次碰撞检测时刻每个三角形更新后的空间位置,对上一次碰撞检测过程的包围盒层次结构中最底层的包围盒进行重构,进而自底向上对上一次碰撞检测过程的包围盒层次结构进行整理更新而成的,n为大于1的自然数。
所述的步骤(3)中,基于厚度的连续碰撞检测方法包括如下步骤:
3-1.将输出的叶节点对应的三角形对分解为六个点/三角形测试对,获取前一时刻和当前时刻待检测三角形三个顶点的三维坐标、待检测点的三维坐标、待检测三角形的法向量、三角形网格柔性场景模型厚度;
,,,,分别为前一时刻待检测三角形三个顶点的三维坐标,分别为当前时刻待检测三角形三个顶点的三维坐标,和分别为前一时刻和当前时刻待检测三角形的法向量,为三角形网格柔性场景模型厚度,和分别为前一时刻和当前时刻待检测点的三维坐标,为误差修正值。
所述的包围盒优选为16-DOP包围盒。
本发明有益效果如下:
本发明提供了一种基于厚度的柔性场景连续碰撞检测方法,通过求解1个基于厚度的3次方程,实现了对三角形对进行精确连续碰撞检测的目标,提高了碰撞检测的准确性和效率。
附图说明
图1为本发明连续碰撞检测方法的步骤流程示意图;
图2(a)为BVH的结构示意图;
图2(b)为BVTT的结构示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的连续碰撞检测方法进行详细说明。
如图1所示,一种基于厚度的柔性场景连续碰撞检测方法,包括如下步骤:
步骤(1)对待检测的三角形网格柔性场景模型中的每个三角形构造对应的16-DOP包围盒,进而为三角形网格柔性场景建立包围盒层次结构;
当进行第n次碰撞检测时,包围盒层次结构是根据第n次碰撞检测时刻每个三角形的空间位置,对上一次碰撞检测过程中的包围盒层次结构中最底层的16-DOP包围盒进行重构,进而自底向上对上一次碰撞检测过程中的包围盒层次结构进行整理更新而成的,n为大于1的自然数。
为每个三角形构造对应的16-DOP包围盒:首先将被包围三角形的顶点分别在各个方向上进行投影,然后判断这些投影是否落在包围盒的外部,如果落在包围盒外部,需要对该方向上包围盒的范围进行调整,保证该投影恰好落在边界上;对于16-DOP包围盒,任何一个三角形顶点都需要做16次比较,判断这个点是否落在包围盒内部。
为三角形网格柔性场景模型建立包围盒层次结构,包括如下步骤:
1.计算出三角形网格柔性场景模型中每个三角形的中心;
2.通过采用坐标轴投影分割法对所有三角形中心进行划分:将所有三角形中心分别投影到三维坐标系的x、y、z轴上,
2-1.选取轴上相距最远的两个三角形中心投影之间的距离,将其中距离最大的轴作为投影轴,将投影轴上相距最远的两个三角形中心投影为端点的线段,平分成两个子线段; 若该子线段对应的三角形网格柔性场景模型的局部只有一个三角形中心或没有三角形中心,则跳转到步骤3-3;
2-2.将子线段对应的三角形网格柔性场景模型的局部继续投影到三维坐标系的x、y、z轴上, 选取轴上相距最远的两个三角形中心投影之间的距离,将其中距离最大的轴作为投影轴,将投影轴上相距最远的两个三角形中心投影为端点的线段,平分成两个子线段;
2-3.若步骤2-2的子线段对应的三角形网格柔性场景模型的局部只有一个三角形中心或没有三角形中心,则进入步骤3,否者重复步骤2-2;
3.采用自底向上的方法为整个三角形网格柔性场景模型建立对应的包围盒层次结构。
步骤(2)根据包围盒层次结构,构建包围盒测试树,进而输出存在包围盒重叠的叶节点;
首先,采用自顶向下的构建方法构造包围盒测试树(BVTT),在图2(a)中已经对整个场景构造了一个包围盒层次结构(BVH);相应地,图2(b)就是针对图2(a)场景而构建的一个BVTT。
BVTT的根节点(A,A)就是A的自碰撞检测对,然后提取出A的两个子包围盒B和a,分别对B和a做自碰撞检测,由于a已经是叶节点,所以不需要检测自碰撞,另外还需要检测B和a之间是否发生碰撞,即比较两个16-DOP包围盒之间是否有重叠。这个过程可以概括为:在这16个方向上比较两个包围盒是否有交集;如果在某个方向上没有重叠,则停止比较并且判定两个包围盒没有重叠。如果在所有方向上都有重叠,则采用左子树优先遍历方法,检测到B有子包围盒b和c,采用与处理B和a相同的方法,分别对b和c做自碰撞检测,另外判断B的两个子包围盒b和c是否与a发生重叠;如果在所有方向上都有重叠,并且a、b、c都已经是最底层包围盒(没有子包围盒),则停止遍历,输出存在重叠的叶节点。
步骤(3) 采用基于厚度的连续碰撞检测方法,对步骤(2)输出的叶节点对应的三角形对进行精确连续碰撞检测。
基于厚度的连续碰撞检测方法包括如下步骤:
3-1.将输出的叶节点对应的三角形对分解为六个点/三角形测试对,获取前一时刻和当前时刻待检测三角形三个顶点的三维坐标、待检测点的三维坐标、待检测三角形的法向量、三角形网格柔性场景模型厚度;
Claims (5)
1. 一种基于厚度的柔性场景连续碰撞检测方法,其特征在于包括如下步骤:
步骤(1)对待检测的三角形网格柔性场景模型中的每个三角形构造对应的包围盒,进而为三角形网格柔性场景建立包围盒层次结构;
步骤(2)根据包围盒层次结构,构建包围盒测试树,进而输出存在包围盒重叠的叶节点;
步骤(3)对步骤(2)输出的叶节点对应的三角形对进行精确连续碰撞检测。
2.根据权利要求1所述的基于厚度的柔性场景连续碰撞检测方法,其特征在于:所述的步骤(1)中,为三角形网格柔性场景模型建立包围盒层次结构,包括如下步骤:
1-1.计算出三角形网格柔性场景模型中每个三角形的中心;
1-2.通过采用坐标轴投影分割法对所有三角形中心进行划分:将所有三角形中心分别投影到三维坐标系的x、y、z轴上,
1-2-1.选取轴上相距最远的两个三角形中心投影之间的距离,将其中距离最大的轴作为投影轴,将投影轴上相距最远的两个三角形中心投影为端点的线段,平分成两个子线段; 若该子线段对应的三角形网格柔性场景模型的局部只有一个三角形中心或没有三角形中心,则跳转到步骤1-3;
1-2-2.将子线段对应的三角形网格柔性场景模型的局部继续投影到三维坐标系的x、y、z轴上, 选取轴上相距最远的两个三角形中心投影之间的距离,将其中距离最大的轴作为投影轴,将投影轴上相距最远的两个三角形中心投影为端点的线段,平分成两个子线段;
1-2-3.若步骤1-2-2的子线段对应的三角形网格柔性场景模型的局部只有一个三角形中心或没有三角形中心,则进入步骤1-3,否则重复步骤1-2-2;
1-3.采用自底向上的方法为整个三角形网格柔性场景模型建立对应的包围盒层次结构。
3.根据权利要求1所述的基于厚度的柔性场景连续碰撞检测方法,其特征在于:所述的步骤(2)中,当进行第n次碰撞检测时,包围盒层次结构是根据第n次碰撞检测时刻每个三角形更新后的空间位置,对上一次碰撞检测过程的包围盒层次结构中最底层的包围盒进行重构,进而自底向上对上一次碰撞检测过程的包围盒层次结构进行整理更新而成的,n为大于1的自然数。
4.根据权利要求1所述的基于厚度的柔性场景连续碰撞检测方法,其特征在于:所述的步骤(3)中,基于厚度的连续碰撞检测方法包括如下步骤:
3-1.将输出的叶节点对应的三角形对分解为六个点/三角形测试对,获取前一时刻和当前时刻待检测三角形三个顶点的三维坐标、待检测点的三维坐标、待检测三角形的法向量、三角形网格柔性场景模型厚度;
5.根据权利要求1所述的基于厚度的柔性场景连续碰撞检测方法,其特征在于:所述的包围盒为16-DOP包围盒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310211619.2A CN103337091B (zh) | 2013-05-30 | 2013-05-30 | 一种基于厚度的柔性场景连续碰撞检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310211619.2A CN103337091B (zh) | 2013-05-30 | 2013-05-30 | 一种基于厚度的柔性场景连续碰撞检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103337091A true CN103337091A (zh) | 2013-10-02 |
CN103337091B CN103337091B (zh) | 2016-02-03 |
Family
ID=49245239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310211619.2A Expired - Fee Related CN103337091B (zh) | 2013-05-30 | 2013-05-30 | 一种基于厚度的柔性场景连续碰撞检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103337091B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106846459A (zh) * | 2016-12-27 | 2017-06-13 | 合肥漫禹科技有限公司 | 一种用于vr虚拟校园系统的碰撞检测方法 |
CN107134001A (zh) * | 2017-05-26 | 2017-09-05 | 厦门幻世网络科技有限公司 | 用于3d动画材料的图像处理的方法、装置、设备及介质 |
CN107168933A (zh) * | 2017-05-09 | 2017-09-15 | 北京四维空间数码科技有限公司 | 一种空间影响区域分析方法 |
CN109741461A (zh) * | 2018-12-18 | 2019-05-10 | 南京东巴电子科技有限公司 | 三维动态模拟施工方案过程中实现碰撞检测的方法 |
CN110244842A (zh) * | 2019-05-31 | 2019-09-17 | 国网江苏省电力有限公司常州供电分公司 | Vr模型、vr场景处理方法、vr培训系统、存储介质及电子设备 |
CN110807831A (zh) * | 2019-09-18 | 2020-02-18 | 重庆大学 | 一种基于最小单元碰撞检测的传感器覆盖范围计算方法 |
CN115272379A (zh) * | 2022-08-03 | 2022-11-01 | 杭州新迪数字工程系统有限公司 | 一种基于投影的三维网格模型外轮廓提取方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110069259A (ko) * | 2009-12-17 | 2011-06-23 | 한국과학기술원 | 상호충돌검사 기반 병렬충돌검사 방법 및 컴퓨터 판독가능 매체 |
CN102253862A (zh) * | 2011-04-26 | 2011-11-23 | 浙江大学 | 一种基于SIMD的k-DOP包围盒碰撞检测方法 |
-
2013
- 2013-05-30 CN CN201310211619.2A patent/CN103337091B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110069259A (ko) * | 2009-12-17 | 2011-06-23 | 한국과학기술원 | 상호충돌검사 기반 병렬충돌검사 방법 및 컴퓨터 판독가능 매체 |
CN102253862A (zh) * | 2011-04-26 | 2011-11-23 | 浙江大学 | 一种基于SIMD的k-DOP包围盒碰撞检测方法 |
Non-Patent Citations (1)
Title |
---|
虞磊等: "基于绝对节点坐标的柔性体碰撞仿真", 《清华大学学报( 自然科学版)》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106846459A (zh) * | 2016-12-27 | 2017-06-13 | 合肥漫禹科技有限公司 | 一种用于vr虚拟校园系统的碰撞检测方法 |
CN107168933B (zh) * | 2017-05-09 | 2020-05-08 | 北京四维空间数码科技有限公司 | 一种空间影响区域分析方法 |
CN107168933A (zh) * | 2017-05-09 | 2017-09-15 | 北京四维空间数码科技有限公司 | 一种空间影响区域分析方法 |
CN107134001A (zh) * | 2017-05-26 | 2017-09-05 | 厦门幻世网络科技有限公司 | 用于3d动画材料的图像处理的方法、装置、设备及介质 |
CN107134001B (zh) * | 2017-05-26 | 2020-05-15 | 厦门黑镜科技有限公司 | 用于3d动画材料的图像处理的方法、装置、设备及介质 |
CN109741461A (zh) * | 2018-12-18 | 2019-05-10 | 南京东巴电子科技有限公司 | 三维动态模拟施工方案过程中实现碰撞检测的方法 |
CN109741461B (zh) * | 2018-12-18 | 2023-04-07 | 南京东巴电子科技有限公司 | 三维动态模拟施工方案过程中实现碰撞检测的方法 |
CN110244842A (zh) * | 2019-05-31 | 2019-09-17 | 国网江苏省电力有限公司常州供电分公司 | Vr模型、vr场景处理方法、vr培训系统、存储介质及电子设备 |
CN110244842B (zh) * | 2019-05-31 | 2023-01-03 | 国网江苏省电力有限公司常州供电分公司 | Vr模型、vr场景处理方法、vr培训系统、存储介质及电子设备 |
CN110807831A (zh) * | 2019-09-18 | 2020-02-18 | 重庆大学 | 一种基于最小单元碰撞检测的传感器覆盖范围计算方法 |
CN110807831B (zh) * | 2019-09-18 | 2023-03-28 | 重庆大学 | 一种基于最小单元碰撞检测的传感器覆盖范围计算方法 |
CN115272379A (zh) * | 2022-08-03 | 2022-11-01 | 杭州新迪数字工程系统有限公司 | 一种基于投影的三维网格模型外轮廓提取方法及系统 |
CN115272379B (zh) * | 2022-08-03 | 2023-11-28 | 上海新迪数字技术有限公司 | 一种基于投影的三维网格模型外轮廓提取方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103337091B (zh) | 2016-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103337091A (zh) | 一种基于厚度的柔性场景连续碰撞检测方法 | |
Mezger et al. | Hierarchical techniques in collision detection for cloth animation | |
CN102393826B (zh) | 一种基于多核并行处理的柔性场景连续碰撞检测方法 | |
CN102156782B (zh) | 基于图论的电力系统公式并行运算管理方法 | |
CN102193837B (zh) | 一种基于前线的包围盒碰撞检测方法 | |
CN103714577B (zh) | 一种适用于带纹理模型的三维模型简化方法 | |
CN104200031A (zh) | 一种基于距离优先和时空相关性的碰撞检测方法 | |
CN104008561A (zh) | 一种基于gpu模拟过程式动画的实现方法 | |
CN102982562A (zh) | 一种判断目标点是否位于多边形区域内部的方法 | |
CN103324784B (zh) | 一种基于局部约束的网格模型碰撞处理方法 | |
CN102253862B (zh) | 一种基于SIMD的k-DOP包围盒碰撞检测方法 | |
CN104658033A (zh) | 多光源下的全局光照绘制方法及装置 | |
CN102722910B (zh) | 一种基于分离轴剔除的体网格场景连续碰撞检测方法 | |
CN104699946A (zh) | 一种游戏场景的管理方法及装置 | |
CN103768792A (zh) | 应用于大范围视频空间目标定位系统的分区与识别方法 | |
CN104778737B (zh) | 基于gpu的大规模落叶实时渲染方法 | |
CN104809760A (zh) | 基于深度优先策略的地理空间三维外轮廓自动构建方法 | |
Wang et al. | Efficient and Reliable Self‐Collision Culling Using Unprojected Normal Cones | |
CN102393825B (zh) | 一种基于非共面剔除的柔性场景连续碰撞检测方法 | |
CN104361625A (zh) | 一种基于射线原理的带边界保留的云数据精简算法 | |
CN101609563A (zh) | 一种三维模型形状特征二叉树的构建方法 | |
CN102393827A (zh) | 一种基于连续法向锥剔除的柔性场景连续碰撞检测方法 | |
CN109767492A (zh) | 一种变电站三维模型的间距计算方法 | |
CN103729886A (zh) | 一种基于顶点重定位的三角网格表面模型概率融合方法 | |
Wong et al. | Continuous self‐collision detection for deformable surfaces interacting with solid models |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160203 Termination date: 20190530 |
|
CF01 | Termination of patent right due to non-payment of annual fee |