CN110717965A - 一种三维空间内基于降维的实时路径生成方法 - Google Patents
一种三维空间内基于降维的实时路径生成方法 Download PDFInfo
- Publication number
- CN110717965A CN110717965A CN201910852865.3A CN201910852865A CN110717965A CN 110717965 A CN110717965 A CN 110717965A CN 201910852865 A CN201910852865 A CN 201910852865A CN 110717965 A CN110717965 A CN 110717965A
- Authority
- CN
- China
- Prior art keywords
- path
- point
- line segment
- intersection
- moving
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/02—Non-photorealistic rendering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种三维空间内基于降维的实时路径生成方法,数个模型组成的三维空间内一顶点沿某一直线方向移动时,其路径位于一个平面内,根据此平面计算空间中每个模型上的对应路径段,根据模型间互相重叠的位置关系,计算最终移动路径以及终点,由此可以有效的解决离散碰撞检测中的“穿模”的问题,结合空间加速结构的优化,能够转化为并行化计算,并且能满足实时性的要求。
Description
技术领域
本发明涉及计算机图形学实时渲染技术领域,尤其涉及一种三维空间内基于降维的实时路径生成方法。
背景技术
碰撞检测用于确定空间中物体是否发生碰撞,并按需计算碰撞时间、碰撞点、碰撞截面等。在检测到碰撞后对之进行相应处理,做出力学模拟、骨骼动画等效果。动态场景中的碰撞检测算法可分为离散碰撞检测和连续碰撞检测。
其中,离散碰撞检测计算间隔时间较短的运动时,判断在离散的时间点上物体间是否碰撞,并进行相应处理。该类型算法是一种近似方法,能够很好的满足实时性的要求。但是由于检测时间的不连续,其无法避免“穿模”现象,且不适合摩擦、弹性碰撞、非弹性碰撞等问题的处理。
连续碰撞检测在物体发生进一步运动之前预测其行进轨迹,将各物体的行进轨迹进行对比,判断其是否在同一时刻相交。该类算法不会发生物体之间互相穿过的现象,极大程度地保证了碰撞发生时间与发生位置的精确性。但是,由于大量的轨迹计算的执行,性能开销较大。
因此,提供一种新的实时路径生成方案成为亟待解决的问题。
发明内容
本发明旨在提供一种克服上述问题之一或者至少部分地解决上述任一问题的三维空间内基于降维的实时路径生成方法。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明提供了一种三维空间内基于降维的实时移动路径生成方法,虚拟场景中包括N个三维模型,N≥1且为自然数,已知其中一个三维模型表面一个起点点O、点O所在图元F、点O所在模型编号k、点O的前进方向S、点O的移动距离L;实时计算点O在虚拟场景中的移动路径,包括:S1,计算截面M,其中,截面M过点O且截面M的法向量与前进方向S和图元F的法向量分别垂直;S2,计算截面M内以点O为圆心、移动距离L为半径的圆内,N个三维模型中每个三维模型上图元与截面M的交线,将交线按顺序分别存入各个三维模型对应的路径Di,i为三维模型的模型编号,初始化点O在模型编号为k的三维模型上的移动路径Dk,其中,路径Dk为点O根据前进方向S形成的路径唯一的有向图;S3,从路径Dk中的起始线段开始,按顺序判断路径Dk中的每条线段是否与各个路径Di中的线段相交,其中,判断相交时排除路径Dk的起点,并且判断时满足i≠k,如果路径Dk中线段与各个路径Di中线段未相交,则执行S4,否则执行S5,当Dk与各个Di中无可达线段时,执行S6;S4,将路径Dk中当前线段加入最终路径E,并继续执行S3;S5,将路径Dk中当前线段的起点与距当前线段的起点最近的交点C形成的路径加入最终路径E,确定新的路径Dk,新的路径Dk为:路径Dk中当前线段的起点与终点所在图元的法线与路径Di中相交的线段呈锐角,且路径Dk中当前线段对应夹角最大者所对应的路径Di中,交点C之后的路径Di,将新的路径Dk置为路径Dk,并继续执行S3;S6,根据最终路径E和移动距离L计算点O在虚拟场景中的移动路径。
其中,如果点O为多个模型的交点,则模型编号k为点O在模型表面移动的对应模型编号,图元F为点O在模型表面的相应图元。
其中,计算截面M内以点O为圆心、移动距离L为半径的圆内,N个三维模型中每个三维模型上图元与截面M的交线,将交线按顺序存入路径Di时,如果三角形所在平面与截面M重合,则根据预设的移动的相应控制策略计算路径Di。
其中,初始化点O在模型编号为k的三维模型上的移动路径Dk包括:确定点O所在线段的端点,其中,端点包括第一端点O1和第二端点O2,其中,第一端点O1和第二端点O2均不与点O重合;获取向量OO1、OO2与移动方向夹角最小的路径为起始路径,将起始路径及起始路径的后续线段确定为路径Dk;其中,如果向量OO1、OO2与移动方向夹角相等,则按照预设规则重新确定前进方向S。
其中,计算截面M内以点O为圆心、移动距离L为半径的圆内,N个三维模型中每个三维模型上图元与截面M的交线包括:结合空间加速结构计算截面M内以点O为圆心、移动距离L为半径的圆内,N个三维模型中每个三维模型上图元与截面M的交线;按顺序判断路径Dk中的每条线段是否与各个路径Di中的线段相交包括:结合空间加速结构计算按顺序判断路径Dk中的每条线段是否与各个路径Di中的线段相交。
其中,虚拟场景中的N个三维模型假定不存在孔洞缺陷。
由此可见,本发明实施例提供的三维空间内基于降维的实时路径生成方法,数个模型组成的三维空间内一顶点沿某一直线方向移动时,其路径位于一个平面内,根据此平面计算空间中每个模型上的对应路径段,根据模型间互相重叠的位置关系,计算最终移动路径以及终点,由此可以有效的解决离散碰撞检测中的“穿模”的问题。
进一步,结合空间加速结构的优化,能够转化为并行化计算,并且能满足实时性的要求。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,下面描述中的附图仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他附图。
图1为本发明实施例提供的三维空间内基于降维的实时路径生成方法的流程示意图;
图2为本发明实施例提供的三维空间内基于降维的实时路径生成方法核心思路示意图;
图3为本发明实施例提供的不存在模型相交时的路径计算示意图;
图4为本发明实施例提供的多个模型相交于不同点时的路径计算示意图;
图5为本发明实施例提供的多个模型相交于同一点时的路径计算示意图;
图6为本发明实施例提供的三维空间内基于降维的实时路径生成方法的一种具体实现流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本发明实施例提供的三维空间内基于降维的实时路径生成方法的流程示意图,参见图1,本发明实施例提供的三维空间内基于降维的实时路径生成方法,虚拟场景中包括N个三维模型,N≥1且为自然数,已知其中一个三维模型表面一个起点点O、点O所在图元F、点O所在模型编号k、点O的前进方向S、点O的移动距离L。
具体地,为计算多模型的三维场景中,沿一直线方向移动时的移动路径与终点,可以先确定已知的多个模型中的一个模型表面的一个起点O、点O所在图元F及其所在模型编号k、前进方向S、移动距离L,通过确定上述参数,可以为后续计算移动路径提供数据支持。
作为本发明实施例的一个可选实施方式,虚拟场景中的N个三维模型假定不存在孔洞缺陷。由于本发明实施例提供的三维空间内基于降维的实时路径生成方法,假定场景中的模型不存在孔洞、缝隙等缺陷,因此,可以基于该假定条件进行后续计算。
作为本发明实施例的一个可选实施方式,如果点O为多个模型的交点,则模型编号k为点O在模型表面移动的对应模型编号,图元F为点O在模型表面的相应图元。
实时计算点O在虚拟场景中的移动路径,包括:
S1,计算截面M,其中,截面M过点O且截面M的法向量与前进方向S和图元F的法向量分别垂直;
S2,计算截面M内以点O为圆心、移动距离L为半径的圆内,N个三维模型中每个三维模型上图元与截面M的交线,将交线按顺序分别存入各个三维模型对应的路径Di,i为三维模型的模型编号,初始化点O在模型编号为k的三维模型上的移动路径Dk,其中,路径Dk为点O根据前进方向S形成的路径唯一的有向图。
作为本发明实施例的一个可选实施方式,计算截面M内以点O为圆心、移动距离L为半径的圆内,N个三维模型中每个三维模型上图元与截面M的交线,将交线按顺序存入路径Di时,如果三角形所在平面与截面M重合,则根据预设的移动的相应控制策略计算路径Di。即,在求交线时,在三角形所在平面与截面M重合时,须根据移动的相应控制策略计算路径。
作为本发明实施例的一个可选实施方式,初始化点O在模型编号为k的三维模型上的移动路径Dk包括:确定点O所在线段的端点,其中,端点包括第一端点O1和第二端点O2,其中,第一端点O1和第二端点O2均不与点O重合;获取向量OO1、OO2与移动方向夹角最小的路径为起始路径,将起始路径及起始路径的后续线段确定为路径Dk;其中,如果向量OO1、OO2与移动方向夹角相等,则按照预设规则重新确定前进方向S。具体地,路径Dk初始化计算其方法为:记O所在线段的端点(不与O重合)为O1、O2,取向量OO1、OO2与移动方向夹角最小为起始路径,及其后续线段为路径Dk,即模型k内前进方向上的路径。其中若夹角相等,则为一种向上或向下的趋势,此时S须重新确定。
作为本发明实施例的一个可选实施方式,计算截面M内以点O为圆心、移动距离L为半径的圆内,N个三维模型中每个三维模型上图元与截面M的交线包括:结合空间加速结构计算截面M内以点O为圆心、移动距离L为半径的圆内,N个三维模型中每个三维模型上图元与截面M的交线。具体地,在计算交线时,结合空间加速结构进行优化,能够转化为并行化计算,以满足实时性的要求。
S3,从路径Dk中的起始线段开始,按顺序判断路径Dk中的每条线段是否与各个路径Di中的线段相交,其中,判断相交时排除路径Dk的起点,并且判断时满足i≠k,如果路径Dk中线段与各个路径Di中线段未相交,则执行S4,否则执行S5,直至Dk与各个Di中无可达线段,执行S6;
作为本发明实施例的一个可选实施方式,按顺序判断路径Dk中的每条线段是否与各个路径Di中的线段相交包括:结合空间加速结构计算按顺序判断路径Dk中的每条线段是否与各个路径Di中的线段相交。具体地,在判断是否相交时,可结合空间加速结构进行优化,并借助其实现并行化计算。
S4,将路径Dk中当前线段加入最终路径E,并继续执行S3;
S5,将路径Dk中当前线段的起点与距当前线段的起点最近的交点C形成的路径加入最终路径E,确定新的路径Dk,新的路径Dk为:路径Dk中当前线段的起点与终点所在图元的法线与路径Di中相交的线段呈锐角,且路径Dk中当前线段对应夹角最大者所对应的路径Di中,交点C之后的路径Di,将新的路径Dk置为路径Dk,并继续执行S3;
S6,根据最终路径E和移动距离L计算点O在虚拟场景中的移动路径。
由此可见,通过本发明实施例提供的三维空间内基于降维的实时路径生成方法,数个模型组成的三维空间内一顶点沿某一直线方向移动时,其路径位于一个平面内,根据此平面计算空间中每个模型上的对应路径段,根据模型间互相重叠的位置关系,计算最终移动路径以及终点,由此可以有效的解决离散碰撞检测中的“穿模”的问题。
具体地,参见图2-5,进行进一步说明:
参见图2,本发明实施例提供的三维空间内基于降维的实时路径生成方法的核心思路为:数个模型组成的三维空间内一顶点沿某一直线方向移动时,其路径位于一个平面内,根据此平面计算空间中每个模型上的对应路径段,根据模型间互相重叠的位置关系,计算最终移动路径以及终点。
如图3所示,在S3不存在模型相交时的移动路径计算,即确定Dk中线段与其他Di(i≠k)中线段不相交,将Dk中当前线段加入最终路径E。
如图4所示,在S3多个模型相交于不同点时的移动路径计算,即确定Dk中线段与其他Di(i≠k)中线段相交,且相交于不同点:
其中一个实施例为:即Dk与Dm相交于C1和C2;最终得到的移动路径E为O-C1-V5-C2-V3。
另一个实施例为:即Dk与Dn相交于C1和C4,Dn与Dm相交于C2和C3,最终得到的移动路径E为O-C1-V8-C2-V5-C3-C4-V3。
如图5所示,在S3多个模型相交于同一点时的移动路径计算,即确定Dk中线段与其他Di(i≠k)中线段相交,且相交于同一点:即Dk与Dm相交于C1和C2;Dm与Dn相交于C1;最终得到的移动路径E为O-C1-V5-C2-V3。
图6示出了本发明实施例提供的三维空间内基于降维的实时路径生成方法的一种具体实现流程图,利用图6所示的三维空间内基于降维的实时路径生成方法,可以得到点O在多个模型组成的三维空间内移动的路径。由此可见,数个模型组成的三维空间内一顶点沿某一直线方向移动时,其路径位于一个平面内,根据此平面计算空间中每个模型上的对应路径段,根据模型间互相重叠的位置关系,计算最终移动路径以及终点。算法有效的解决了离散碰撞检测中的“穿模”的问题。进一步,结合空间加速结构,算法能够转化为并行化计算,并且能满足实时性的要求。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (6)
1.一种三维空间内基于降维的实时移动路径生成方法,其特征在于,虚拟场景中包括N个三维模型,N≥1且为自然数,已知其中一个三维模型表面一个起点点O、所述点O所在图元F、所述点O所在模型编号k、所述点O的前进方向S、所述点O的移动距离L;
实时计算所述点O在虚拟场景中的移动路径,包括:
S1,计算截面M,其中,所述截面M过所述点O且所述截面M的法向量与所述前进方向S和所述图元F的法向量分别垂直;
S2,计算所述截面M内以所述点O为圆心、所述移动距离L为半径的圆内,所述N个三维模型中每个三维模型上图元与所述截面M的交线,将所述交线按顺序分别存入各个三维模型对应的路径Di,i为三维模型的模型编号,初始化所述点O在模型编号为k的三维模型上的移动路径Dk,其中,所述路径Dk为所述点O根据所述前进方向S形成的路径唯一的有向图;
S3,从所述路径Dk中的起始线段开始,按顺序判断所述路径Dk中的每条线段是否与各个所述路径Di中的线段相交,其中,判断相交时排除所述路径Dk的起点,并且判断时满足i≠k,如果所述路径Dk中线段与各个所述路径Di中线段未相交,则执行S4,否则执行S5,当Dk与各个Di中无可达线段时执行S6;
S4,将所述路径Dk中当前线段加入所述最终路径E,并继续执行S3;
S5,将所述路径Dk中当前线段的起点与距所述当前线段的起点最近的交点C形成的路径加入所述最终路径E,确定新的路径Dk,所述新的路径Dk为:所述路径Dk中当前线段的起点与终点所在图元的法线与所述路径Di中相交的线段呈锐角,且所述路径Dk中当前线段对应夹角最大者所对应的所述路径Di中,所述交点C之后的所述路径Di,将所述新的路径Dk置为所述路径Dk,并继续执行S3;
S6,根据所述最终路径E和所述移动距离L计算所述点O在虚拟场景中的移动路径。
2.根据权利要求1所述的方法,其特征在于,如果所述点O为多个模型的交点,则所述模型编号k为所述点O在模型表面移动的对应模型编号,所述图元F为所述点O在模型表面的相应图元。
3.根据权利要求1所述的方法,其特征在于,所述计算所述截面M内以所述点O为圆心、所述移动距离L为半径的圆内,所述N个三维模型中每个三维模型上图元与所述截面M的交线,将所述交线按顺序存入路径Di时,如果三角形所在平面与所述截面M重合,则根据预设的移动的相应控制策略计算所述路径Di。
4.根据权利要求1所述的方法,其特征在于,所述初始化所述点O在模型编号为k的三维模型上的移动路径Dk包括:
确定所述点O所在线段的端点,其中,所述端点包括第一端点O1和第二端点O2,其中,所述第一端点O1和所述第二端点O2均不与所述点O重合;
获取向量OO1、OO2与移动方向夹角最小的路径为起始路径,将所述起始路径及所述起始路径的后续线段确定为所述路径Dk;其中,如果向量OO1、OO2与移动方向夹角相等,则按照预设规则重新确定所述前进方向S。
5.根据权利要求1所述的方法,其特征在于,所述计算所述截面M内以所述点O为圆心、所述移动距离L为半径的圆内,所述N个三维模型中每个三维模型上图元与所述截面M的交线包括:
结合空间加速结构计算所述截面M内以所述点O为圆心、所述移动距离L为半径的圆内,所述N个三维模型中每个三维模型上图元与所述截面M的交线;
所述按顺序判断所述路径Dk中的每条线段是否与各个所述路径Di中的线段相交包括:
结合空间加速结构计算按顺序判断所述路径Dk中的每条线段是否与各个所述路径Di中的线段相交。
6.根据权利要求1所述的方法,其特征在于,所述虚拟场景中的N个所述三维模型假定不存在孔洞缺陷。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910852865.3A CN110717965B (zh) | 2019-09-10 | 2019-09-10 | 一种三维空间内基于降维的实时路径生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910852865.3A CN110717965B (zh) | 2019-09-10 | 2019-09-10 | 一种三维空间内基于降维的实时路径生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110717965A true CN110717965A (zh) | 2020-01-21 |
CN110717965B CN110717965B (zh) | 2023-07-11 |
Family
ID=69209733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910852865.3A Active CN110717965B (zh) | 2019-09-10 | 2019-09-10 | 一种三维空间内基于降维的实时路径生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110717965B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090965A (zh) * | 2017-11-30 | 2018-05-29 | 长江空间信息技术工程有限公司(武汉) | 支持海量空间数据的3d漫游碰撞检测方法 |
CN109191551A (zh) * | 2018-07-26 | 2019-01-11 | 江苏理工学院 | 一种基于三角形邻接信息的沿三维模型表面移动算法 |
CN110047143A (zh) * | 2019-03-04 | 2019-07-23 | 南昌大学 | 一种基于空间细分与动态包围盒的连续碰撞检测方法 |
-
2019
- 2019-09-10 CN CN201910852865.3A patent/CN110717965B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090965A (zh) * | 2017-11-30 | 2018-05-29 | 长江空间信息技术工程有限公司(武汉) | 支持海量空间数据的3d漫游碰撞检测方法 |
CN109191551A (zh) * | 2018-07-26 | 2019-01-11 | 江苏理工学院 | 一种基于三角形邻接信息的沿三维模型表面移动算法 |
CN110047143A (zh) * | 2019-03-04 | 2019-07-23 | 南昌大学 | 一种基于空间细分与动态包围盒的连续碰撞检测方法 |
Non-Patent Citations (1)
Title |
---|
邹刘磊;徐安琦;张震;朱洪锦;范洪辉: "一种空间数据结构加速的顶点与地形实时交互算法", 《江苏理工学院学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110717965B (zh) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104408774B (zh) | 一种基于gpu加速的实体面片模型间碰撞检测方法 | |
Godoy et al. | Implicit coordination in crowded multi-agent navigation | |
JP7341187B2 (ja) | シミュレーション車両を制御するための方法、装置、電子機器及び記憶媒体 | |
CN110162029A (zh) | 一种基于规划路径的运动控制方法及装置、机器人 | |
JP2014502393A (ja) | 判定方法及び判定装置 | |
CN112765695B (zh) | 支撑体生成方法、3d打印机、计算机装置及存储介质 | |
CN110111425A (zh) | 3d字体的斜角生成方法、介质、设备及装置 | |
GB2476714A (en) | Computing a Collision-Free Velocity for an Agent in a Crowd Simulation Environment | |
CN103324784B (zh) | 一种基于局部约束的网格模型碰撞处理方法 | |
KR101533946B1 (ko) | 원의 보로노이 다이어그램의 업데이트 방법과 이를 이용한 입자 간 충돌 시뮬레이션 방법 | |
CN114470777A (zh) | 一种角色的控制方法、装置、电子设备及可读存储介质 | |
CN104240290A (zh) | 一种基于包围球模型的三维电缆相交检测方法 | |
US9168922B1 (en) | Computer-implemented methods and systems for predicting an area to be traversed by a moving vehicle | |
Makarov et al. | Smoothing Voronoi-Based Path with Minimized Length and Visibility Using Composite Bezier Curves. | |
CN110717965B (zh) | 一种三维空间内基于降维的实时路径生成方法 | |
Gayle et al. | Interactive navigation of heterogeneous agents using adaptive roadmaps | |
CN110717970B (zh) | 一种基于离散碰撞检测的借助法线修正位置的移动方法 | |
KR101105244B1 (ko) | 3차원 격자구조에서의 교점을 이용한 곡면 모델링 장치 및 방법 | |
JP6636001B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
CN110490957B (zh) | 物体的变形动画的3d特效展示方法、装置及设备 | |
Zhang et al. | Haptic interaction with a polygon mesh reconstructed from images | |
KR102039265B1 (ko) | Jt포맷을 활용한 선박/해양플랜트 배관재의 기하학적 간섭 체크 및 설치 순서 도출 방법 및 장치 | |
KR101319738B1 (ko) | 변형되는 삼각형의 연속 충돌 검출을 위한 컬링 방법 | |
US20210117831A1 (en) | Computer System | |
JP5407695B2 (ja) | 三次元曲線モデルにおける自己交差の検出プログラム及び自己交差の検出方法 |
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 |