CN111179405B - 3d场景漫游碰撞的检测方法及装置 - Google Patents
3d场景漫游碰撞的检测方法及装置 Download PDFInfo
- Publication number
- CN111179405B CN111179405B CN201811329867.6A CN201811329867A CN111179405B CN 111179405 B CN111179405 B CN 111179405B CN 201811329867 A CN201811329867 A CN 201811329867A CN 111179405 B CN111179405 B CN 111179405B
- Authority
- CN
- China
- Prior art keywords
- objects
- boundary
- voronoi region
- position information
- motion
- 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
Links
Images
Classifications
-
- 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/005—Tree description, e.g. octree, quadtree
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种3D场景漫游碰撞的检测方法及装置。该方法在获取待检测场景中每条边界上至少一个数据点的位置信息后,根据该位置信息,采用Voronoi区域算法,得到至少一个数据点所在边界的Voronoi区域和相应区域的位置信息;基于存储的日志信息和当前边界的Voronoi区域的位置信息,检测该区域是否存在至少两个物体;若存在,且确定两个物体的运动状态处于待碰撞状态,则更新两个物体中任一物体的运动方向。可见,该方法通过预设CVT算法解决了现有场景剖分技术对漫游场景的限制,同时通过依次对每个小区域内的物体进行碰撞检测,提高了检测效率,缩短了检测时间。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种3D场景漫游碰撞的检测方法及装置。
背景技术
近年来,虚拟现实技术得到了长足的发展,在军事、航空航天、制造业、医学、教育、游戏等领域得到广泛应用。对于复杂的虚拟实时漫游系统,一般要结合图形硬件,以及设计高效的数据机构与算法来保证实时绘制,其中,建立优化的场景表示模型是加速实时漫游的重要方面。
虚拟实时漫游系统是一种动态场景系统,其建立要考虑场景剖分、实时渲染,以及碰撞检测算法的复杂度。
虚拟场景中场景剖分可以将场景中的物体通过层次进行剖分,常用的剖分技术可以包括BSP树、四叉树、八叉树、KD树、Cell-Port技术等。
然而,发明人发现上述的剖分技术中,BSP树适合任意维度场景的绘制、碰撞检测等。但BSP树只适用于静态场景,不适合动态场景。
四叉树可以将二维场景进行层次剖分,其只适用于静态场景。
八叉树是四叉树在三维中的扩展,易于使用,适合视域剔除和碰撞检测,但需要场景中的物体分布均匀时使用。
KD树可以更好的适应空间中不均匀分部的图元,但其只适用于静态场景。
Cell-Port由于需要手工划分场景区域,故其只适合于较小的简单场景。
可见,现有技术的上述场景剖分技术对虚拟实时漫游场景的剖分不具有通用性。
发明内容
本申请实施例提供一种3D场景漫游碰撞的检测方法及装置,以解决现有技术的上述问题,提高了对虚拟实时漫游场景剖分的通用性。
第一方面,提供了一种3D场景漫游碰撞的检测方法,该方法可以包括:
获取待检测场景中每条边界上至少一个数据点的位置信息,所述待检测场景包括至少一条边界;
根据所述至少一个数据点的位置信息,采用预设泰森多边形Voronoi区域算法,得到所述至少一个数据点所在边界的Voronoi区域和所述Voronoi区域的位置信息;
基于存储的日志信息和当前边界所属Voronoi区域的位置信息,检测所述Voronoi区域是否存在至少两个物体,所述当前边界为所述至少一条边界中的任一个,所述日志信息包括预先放置的物体的标识、所述物体的位置和所述物体的运动信息;
若存在,且根据所述物体的位置和所述物体的运动信息,确定所述两个物体的运动状态处于待碰撞状态,则更新所述两个物体中任一物体的运动方向。
在一个可选的实现中,更新所述两个物体中任一物体的运动方向,包括:
当所述至少两个物体中两个物体的运动状态处于待碰撞状态,且所述运动方向所成的夹角为平角或直角时,将所述两个物体中任一物体的运动方向旋转180度;
当所述至少两个物体中两个物体的运动状态处于待碰撞状态,且所述运动方向所成的夹角为锐角或钝角时,将所述两个物体中任一物体的运动方向更新为所述两个物体运动方向向量的向量差方向。
在一个可选的实现中,基于存储的日志信息和当前边界所属Voronoi区域的位置信息,检测所述Voronoi区域是否存在至少两个物体之前,所述方法还包括:
向所述Voronoi区域放置至少两个物体。
在一个可选的实现中,若不存在至少两个物体,则将所述至少一条边界中的下一条所属Voronoi区域的位置信息确定为新的当前边界所在Voronoi区域的位置信息,并返回执行步骤:基于存储的日志信息,检测所述Voronoi区域内是否存在至少两个物体。
第二方面,提供了一种检测装置,所述装置包括:获取单元、运算单元、检测单元和更新单元;
获取单元,用于获取待检测场景中每条边界上至少一个数据点的位置信息,所述待检测场景包括至少一条边界;
运算单元,用于根据所述至少一个数据点的位置信息,采用预设泰森多边形Voronoi区域算法,得到所述至少一个数据点所在边界的Voronoi区域和所述Voronoi区域的位置信息;
检测单元,用于基于存储的日志信息和当前边界所属Voronoi区域的位置信息,检测所述Voronoi区域是否存在至少两个物体,所述当前边界为所述至少一条边界中的任一个,所述日志信息包括预先放置的物体的标识、所述物体的位置和所述物体的运动信息;
更新单元,用于若存在,且根据所述物体的位置和所述物体的运动信息,确定所述两个物体的运动状态处于待碰撞状态,则更新所述两个物体中任一物体的运动方向。
在一个可选的实现中,更新单元,具体用于当所述至少两个物体中两个物体的运动状态处于待碰撞状态,且所述运动方向所成的夹角为平角或直角时,将所述两个物体中任一物体的运动方向旋转180度;
当所述至少两个物体中两个物体的运动状态处于待碰撞状态,且所述运动方向所成的夹角为锐角或钝角时,将所述两个物体中任一物体的运动方向更新为所述两个物体运动方向向量的向量差方向。
在一个可选的实现中,该装置还包括放置单元;
放置单元,用于向所述Voronoi区域放置至少两个物体。
在一个可选的实现中,该装置还包括确定单元;
确定单元,用于若不存在至少两个物体,则将所述至少一条边界中的下一条所属Voronoi区域的位置信息确定为新的当前边界所在Voronoi区域的位置信息,并触发所述检测单元。
第三方面,提供了一种电子设备,该电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面中任一所述的方法步骤。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一所述的方法步骤。
本发明上述实施例的方法在获取待检测场景的至少一条边界中每条边界上至少一个数据点的位置信息后,根据至少一个数据点的位置信息,采用Voronoi区域算法,得到至少一个数据点所在边界的Voronoi区域和Voronoi区域的位置信息;基于存储的日志信息和当前边界所属Voronoi区域的位置信息,检测Voronoi区域是否存在至少两个物体,当前边界为至少一条边界中的任一个,日志信息包括预先放置的物体的标识、物体的位置和物体的运动信息;若存在,且根据物体的位置和物体的运动信息,确定两个物体的运动状态处于待碰撞状态,则更新两个物体中任一物体的运动方向。可见,该方法通过预设CVT算法解决了现有技术的场景剖分技术对漫游场景的限制,同时通过依次对每个小区域内的物体进行碰撞检测,提高了检测效率,缩短了检测时间。
附图说明
图1为一种构建三角网的过程示意图;
图2为本发明实施例提供的一种3D场景漫游碰撞的检测方法流程示意图;
图3A为本发明实施例提供的一种更新物体运动方向的过程示意图;
图3B为本发明实施例提供的另一种更新物体运动方向的过程示意图;
图4A为本发明实施例提供的再一种更新物体运动方向的过程示意图;
图4B为本发明实施例提供的再一种更新物体运动方向的过程示意图;
图5为本发明实施例提供的一种检测装置的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,并不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在介绍本申请之前,下面对Voronoi多边形进行简单介绍。
在泰森多边形的构建中,首先要将离散数据点构成不规则三角网。这种不规则三角网称为Delaunay三角网。其中,不规则三角网的构建就是由离散数据点构建三角网的过程,对于平面上n个离散数据点,其平面坐标为(xi,yi),i=1,2,…,n,将其中距离相近的三个数据点构成三角形,使每个离散点都成为三角形的顶点。如图1所示,存在8个离散的数据点,自动联接三角网的结果为所有三角形的三个顶点的标号,如:1、2、8;2、8、3;3、8、7;……。
进一步的,为了获得最佳三角形,在构建三角网时,应尽可能使三角形的三内角均成锐角,即符合Delaunay三角形产生的准则:任何一个Delaunay三角形的外接圆内不能包含任何其它离散点,以及相邻两个Delaunay三角形构成凸四边形,在交换凸四边形的对角线之后,六个内角的最小者不再增大。该性质即为最小角最大准则。
Voronoi图是由一组由连接两个相邻数据点的直线(即Delaunay三角形的边)的垂直平分线组成的连续多边形组成。Voronoi图中每个Voronoi多边形内的点到相应其他点的距离最近。
本发明实施例提供的3D场景漫游碰撞的检测方法可以应用在服务器上,也可以应用在终端上。为了保证检测的精确性,服务器需要具有较强计算能力的应用服务器或云服务器;终端需要具有较强计算能力的笔记本电脑、个人数字助理(PDA)、平板电脑(PAD)等用户设备(User Equipment,UE)、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备、移动台(Mobile station,MS)等。
本发明实施例的3D场景漫游碰撞的检测方法,由于3D场景的各边界是由多个数据点组成,故将3D场景中每个2D空间的边界上的数据点,采用集中式Voronoi图网格细分(centralized Voronoi tessellation,CVT)算法,并对整个检测场景进行区域的划分。由于Voronoi多边形内各个数据点的邻近关系,故每个Voronoi区域为每个3D场景的最小区域。之后,再依次对每个小区域内的物体进行碰撞检测。
可见,该方法通过预设CVT算法解决了现有技术的场景剖分技术对漫游场景的限制,同时通过依次对每个小区域内的物体进行碰撞检测,提高了检测效率,缩短了检测时间。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图2为本发明实施例提供的一种3D场景漫游碰撞的检测方法流程示意图。如图2所示,该方法可以包括:
步骤210、获取待检测场景中每条边界上至少一个数据点的位置信息。
由于每条边界是由多数据点组成,预设数据点间隔d,d为大于零的数,故每条边界可以包括至少一个数据点,如设目标边界包括m个数据点,以p表示数据点,目标边界上数据点的集合为{p1,...,pm},其中,p与m为大于零的正整数。
基于每条边界的位置信息,可以获取到相应边界上至少一个数据点的位置信息。
步骤220、根据至少一个数据点的位置信息,采用预设Voronoi区域算法,得到至少一个数据点所在边界的Voronoi区域和Voronoi区域的位置信息。
以至少一条边界中任一条边界为例。设该边界包括至少一个数据点,根据至少一个数据点中每个数据点的位置信息,采用预设Voronoi区域算法,得到每个数据点的Voronoi区域和相应Voronoi区域的位置信息,进一步可以得到该边界上所有数据点的Voronoi区域,该所有数据点的Voronoi区域的和,即为该边界的Voronoi区域。
可选地,预设Voronoi区域算法可以表示为:
其中,Vor(xp)表示xp的Voronoi区域;xp表示该Voronoi区域内的任意一个数据点;xq表示该Voronoi区域外的任意一个数据点。
根据至少一个数据点中每个数据点的位置信息,采用上述算法,可以得到每个边界上所有数据点的Voronoi区域和相应Voronoi区域的位置信息,由此可以获取所有数据点所在边界的Voronoi区域和相应Voronoi区域的位置信息。
待检测场景中边界的Voronoi区域可以表示为:
其中,Vor(s[xi])表示边界s[xi]的Voronoi区域;边界xi上pk个数据点的Voronoi区域的和,1≤k≤m。
步骤230、基于存储的日志信息和当前边界所属Voronoi区域的位置信息,对Voronoi区域进行检测。
可选地,为了完成场景布置,在执行该步骤之前,可以向当前边界所属Voronoi区域放置至少两个物体。
查找该待检测场景的日志信息,该日志信息包括预先放置在该待检测场景的物体、相应位置信息以及相应物体的运动信息。运动信息可以包括:运动速度、运动方向等。
基于存储的日志信息和当前边界所属Voronoi区域的位置信息,检测该Voronoi区域内是否存在至少两个物体,当前边界为至少一条边界中的任一条;
若该Voronoi区域内存在至少两个物体,则从日志信息中获取至少两个物体中两个物体的运动状态;
当两个物体的运动状态处于待碰撞状态时,更新这两个物体中任一物体的运动方向。其中,待碰撞状态为根据两个物体运动方向预估出一段时间后两个物体可能发送碰撞现象的状态。
可选地,更新这两个物体中任一物体的运动方向的方式有以下两种方式:
方式一,当两个物体的运动方向处于待碰撞状态,且运动方向(图中箭头方向)所成的夹角为平角或直角时,将两个物体中任一物体的运动方向旋转180度,以避免两个物体的运动碰撞。
设Voronoi区域内包括物体A和物体B,如图3A所示,物体A的运动方向和物体B的运动方向所成的夹角为180度时,采用随机函数算法,可以将两个物体中任一物体的运动方向旋转180度。
如图3B所示,物体A的运动方向和物体B的运动方向所成的夹角为90度时,采用随机函数算法,可以将两个物体中任一物体的运动方向旋转180度。
方式二,当至少两个物体中两个物体的运动方向处于待碰撞状态,且运动方向(图中箭头方向)所成的夹角为锐角或钝角时,将两个物体中任一物体的运动方向更新为两个物体运动方向向量的向量差方向。
设Voronoi区域内包括物体A和物体B,如图4A所示,物体A的运动方向和物体B的运动方向所成的夹角为45度时,采用向量的差运算和随机函数算法,可以将两个物体中任一物体的运动方向更新为向量差所指的方向。
如图4B所示,Voronoi区域内包括物体A和物体B,且物体A的运动方向和物体B的运动方向所成的夹角为135度时,采用向量的差运算和随机函数算法,可以将两个物体中任一物体的运动方向更新为向量差所指的方向。
进一步的,在更新这两个物体中任一物体的运动方向后,将至少一条边界中的下一条边界所在的Voronoi区域的位置信息确定为新的当前边界所在Voronoi区域的位置信息,并返回执行该步骤。
以及,若该Voronoi区域内不存在物体或只存在一个物体时,将至少一条边界中的下一条边界所在的Voronoi区域的位置信息确定为新的当前边界所在Voronoi区域的位置信息,并返回执行该步骤,以便完成边界集合中每个边界的Voronoi区域的碰撞检测。
本发明上述实施例的方法在获取待检测场景的至少一条边界中每条边界上至少一个数据点的位置信息后,根据至少一个数据点的位置信息,采用Voronoi区域算法,得到至少一个数据点所在边界的Voronoi区域和Voronoi区域的位置信息;基于存储的日志信息和当前边界所属Voronoi区域的位置信息,检测Voronoi区域是否存在至少两个物体,当前边界为至少一条边界中的任一个,所述日志信息包括预先放置的物体的标识、物体的位置和物体的运动信息;若存在,且根据物体的位置和物体的运动信息,确定两个物体的运动状态处于待碰撞状态,则更新两个物体中任一物体的运动方向。可见,该方法通过预设CVT算法解决了现有技术的场景剖分技术对漫游场景的限制,同时通过依次对每个小区域内的物体进行碰撞检测,提高了检测效率,缩短了检测时间。
与上述方法对应的,本发明实施例还提供一种检测装置,如图5所示,该检测装置包括:获取单元510、运算单元520、检测单元530和更新单元540;
获取单元510,用于获取待检测场景中每条边界上至少一个数据点的位置信息,所述待检测场景包括至少一条边界;
运算单元520,用于根据所述至少一个数据点的位置信息,采用预设泰森多边形Voronoi区域算法,得到所述至少一个数据点所在边界的Voronoi区域和所述Voronoi区域的位置信息;
检测单元530,用于基于存储的日志信息和当前边界所属Voronoi区域的位置信息,检测所述Voronoi区域是否存在至少两个物体,所述当前边界为所述至少一条边界中的任一个,所述日志信息包括预先放置的物体的标识、所述物体的位置和所述物体的运动信息;
更新单元540,用于若存在,且根据所述物体的位置和所述物体的运动信息,确定所述两个物体的运动状态处于待碰撞状态,则更新所述两个物体中任一物体的运动方向。
在一个可选的实现中,更新单元540,具体用于当所述至少两个物体中两个物体的运动状态处于待碰撞状态,且所述运动方向所成的夹角为平角或直角时,将所述两个物体中任一物体的运动方向旋转180度;当所述至少两个物体中两个物体的运动状态处于待碰撞状态,且所述运动方向所成的夹角为锐角或钝角时,将所述两个物体中任一物体的运动方向更新为所述两个物体运动方向向量的向量差方向。
在一个可选的实现中,该装置还包括放置单元550;
放置单元550,用于向所述Voronoi区域放置至少两个物体。
在一个可选的实现中,该装置还包括确定单元560;
确定单元560,用于若不存在至少两个物体,则将所述至少一条边界中的下一条所属Voronoi区域的位置信息确定为新的当前边界所在Voronoi区域的位置信息,并触发所述检测单元530。
本发明上述实施例提供的检测装置的各功能单元的功能,可以通过上述各方法步骤来实现,因此,本发明实施例提供的检测装置中的各个单元的具体工作过程和有益效果,在此不复赘述。
本发明实施例还提供了一种电子设备,如图6所示,包括处理器610、通信接口620、存储器630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。
存储器630,用于存放计算机程序;
处理器610,用于执行存储器630上所存放的程序时,实现如下步骤:
获取待检测场景中每条边界上至少一个数据点的位置信息,所述待检测场景包括至少一条边界;
根据所述至少一个数据点的位置信息,采用预设泰森多边形Voronoi区域算法,得到所述至少一个数据点所在边界的Voronoi区域和所述Voronoi区域的位置信息;
基于存储的日志信息和当前边界所属Voronoi区域的位置信息,检测所述Voronoi区域是否存在至少两个物体,所述当前边界为所述至少一条边界中的任一个,所述日志信息包括预先放置的物体的标识、所述物体的位置和所述物体的运动信息;
若存在,且根据所述物体的位置和所述物体的运动信息,确定所述两个物体的运动状态处于待碰撞状态,则更新所述两个物体中任一物体的运动方向。
在一个可选的实现中,更新所述两个物体中任一物体的运动方向,包括:
当所述至少两个物体中两个物体的运动状态处于待碰撞状态,且所述运动方向所成的夹角为平角或直角时,将所述两个物体中任一物体的运动方向旋转180度;
当所述至少两个物体中两个物体的运动状态处于待碰撞状态,且所述运动方向所成的夹角为锐角或钝角时,将所述两个物体中任一物体的运动方向更新为所述两个物体运动方向向量的向量差方向。
在一个可选的实现中,基于存储的日志信息和当前边界所属Voronoi区域的位置信息,检测所述至少两个物体中两个物体的运动状态之前,向所述Voronoi区域放置至少两个物体。
在一个可选的实现中,若不存在至少两个物体,则将所述至少一条边界中的下一条所属Voronoi区域的位置信息确定为新的当前边界所在Voronoi区域的位置信息,并返回执行步骤:基于存储的日志信息,检测所述Voronoi区域内是否存在至少两个物体。
上述提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
由于上述实施例中电子设备的各器件解决问题的实施方式以及有益效果可以参见图2所示的实施例中的各步骤来实现,因此,本发明实施例提供的电子设备的具体工作过程和有益效果,在此不复赘述。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的检测方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的检测方法。
本领域内的技术人员应明白,本申请实施例中的实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例中可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例中可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例中是参照根据本申请实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例中实施例进行各种改动和变型而不脱离本申请实施例中实施例的精神和范围。这样,倘若本申请实施例中实施例的这些修改和变型属于本申请实施例中权利要求及其等同技术的范围之内,则本申请实施例中也意图包含这些改动和变型在内。
Claims (10)
1.一种3D场景漫游碰撞的检测方法,其特征在于,所述方法包括:
获取待检测场景中每条边界上至少一个数据点的位置信息,所述待检测场景包括至少一条边界;
根据所述至少一个数据点的位置信息,采用预设泰森多边形Voronoi区域算法,得到所述至少一个数据点所在边界的Voronoi区域和所述Voronoi区域的位置信息;所述待检测场景中一条边界的Voronoi区域表示为:
其中,Vor(s[xi])表示边界s[xi]的Voronoi区域,pk表示边界xi上的第k个数据点,1≤k≤m;
基于存储的日志信息和当前边界所属Voronoi区域的位置信息,检测所述Voronoi区域是否存在至少两个物体,所述当前边界为所述至少一条边界中的任一个,所述日志信息包括预先放置的物体的标识、所述物体的位置和所述物体的运动信息;
若存在,且根据所述物体的位置和所述物体的运动信息,确定所述两个物体的运动状态处于待碰撞状态,则更新所述两个物体中任一物体的运动方向。
2.如权利要求1所述的方法,其特征在于,更新所述两个物体中任一物体的运动方向,包括:
当所述至少两个物体中两个物体的运动状态处于待碰撞状态,且所述运动方向所成的夹角为平角或直角时,将所述两个物体中任一物体的运动方向旋转180度;
当所述至少两个物体中两个物体的运动状态处于待碰撞状态,且所述运动方向所成的夹角为锐角或钝角时,将所述两个物体中任一物体的运动方向更新为所述两个物体运动方向向量的向量差方向。
3.如权利要求1所述的方法,其特征在于,基于存储的日志信息和当前边界所属Voronoi区域的位置信息,检测所述Voronoi区域是否存在至少两个物体之前,所述方法还包括:
向所述Voronoi区域放置至少两个物体。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
若不存在至少两个物体,则将所述至少一条边界中的下一条所属Voronoi区域的位置信息确定为新的当前边界所在Voronoi区域的位置信息,并返回执行步骤:基于存储的日志信息,检测所述Voronoi区域内是否存在至少两个物体。
5.一种检测装置,其特征在于,所述装置包括:获取单元、运算单元、检测单元和更新单元;
所述获取单元,用于获取待检测场景中每条边界上至少一个数据点的位置信息,所述待检测场景包括至少一条边界;
所述运算单元,用于根据所述至少一个数据点的位置信息,采用预设泰森多边形Voronoi区域算法,得到所述至少一个数据点所在边界的Voronoi区域和所述Voronoi区域的位置信息;所述待检测场景中一条边界的Voronoi区域表示为:
其中,Vor(s[xi])表示边界s[xi]的Voronoi区域,pk表示边界xi上的第k个数据点,1≤k≤m;
所述检测单元,用于基于存储的日志信息和当前边界所属Voronoi区域的位置信息,检测所述Voronoi区域是否存在至少两个物体,所述当前边界为所述至少一条边界中的任一个,所述日志信息包括预先放置的物体的标识、所述物体的位置和所述物体的运动信息;
所述更新单元,用于若存在,且根据所述物体的位置和所述物体的运动信息,确定所述两个物体的运动状态处于待碰撞状态,则更新所述两个物体中任一物体的运动方向。
6.如权利要求5所述的装置,其特征在于,所述更新单元,具体用于当所述至少两个物体中两个物体的运动状态处于待碰撞状态,且所述运动方向所成的夹角为平角或直角时,将所述两个物体中任一物体的运动方向旋转180度;
当所述至少两个物体中两个物体的运动状态处于待碰撞状态,且所述运动方向所成的夹角为锐角或钝角时,将所述两个物体中任一物体的运动方向更新为所述两个物体运动方向向量的向量差方向。
7.如权利要求5所述的装置,其特征在于,所述装置还包括放置单元;
所述放置单元,用于向所述Voronoi区域放置至少两个物体。
8.如权利要求5所述的装置,其特征在于,所述装置还包括确定单元;
所述确定单元,用于若不存在至少两个物体,则将所述至少一条边界中的下一条所属Voronoi区域的位置信息确定为新的当前边界所在Voronoi区域的位置信息,并触发所述检测单元。
9.一种电子设备,其特征在于,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811329867.6A CN111179405B (zh) | 2018-11-09 | 2018-11-09 | 3d场景漫游碰撞的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811329867.6A CN111179405B (zh) | 2018-11-09 | 2018-11-09 | 3d场景漫游碰撞的检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111179405A CN111179405A (zh) | 2020-05-19 |
CN111179405B true CN111179405B (zh) | 2023-07-04 |
Family
ID=70653473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811329867.6A Active CN111179405B (zh) | 2018-11-09 | 2018-11-09 | 3d场景漫游碰撞的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111179405B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003031005A2 (en) * | 2001-10-09 | 2003-04-17 | Massachusetts Institute Of Technology | Methods and apparatus for detecting and correcting penetration between objects |
WO2012015515A1 (en) * | 2010-07-29 | 2012-02-02 | Exxonmobil Upstream Research Company | Methods and systems for machine-learning based simulation of flow |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2363821A1 (en) * | 2000-11-24 | 2002-05-24 | Alvin Wexler | High definition electrical impedance tomography methods for the detection and diagnosis of early stages of breast cancer |
-
2018
- 2018-11-09 CN CN201811329867.6A patent/CN111179405B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003031005A2 (en) * | 2001-10-09 | 2003-04-17 | Massachusetts Institute Of Technology | Methods and apparatus for detecting and correcting penetration between objects |
WO2012015515A1 (en) * | 2010-07-29 | 2012-02-02 | Exxonmobil Upstream Research Company | Methods and systems for machine-learning based simulation of flow |
Also Published As
Publication number | Publication date |
---|---|
CN111179405A (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111311632B (zh) | 一种物体位姿跟踪方法、装置及设备 | |
US20150109290A1 (en) | Device and method for removing noise points in point clouds | |
CN112070908B (zh) | 三维模型的自动拆分方法、计算机设备以及存储介质 | |
CN109714699B (zh) | 定位方法及终端设备 | |
CN111415420B (zh) | 空间信息确定方法、装置及电子设备 | |
CN106960470B (zh) | 三维点云曲面重建方法及装置 | |
CN111063032B (zh) | 模型渲染方法、系统及电子装置 | |
CN112862874A (zh) | 点云数据匹配方法、装置、电子设备及计算机存储介质 | |
US20100061622A1 (en) | Method for aligning objects | |
CN115018992A (zh) | 发型模型的生成方法、装置、电子设备及存储介质 | |
CN112424628A (zh) | 定位设备 | |
CN111179405B (zh) | 3d场景漫游碰撞的检测方法及装置 | |
CN111265874B (zh) | 游戏中目标物的建模方法、装置、设备及存储介质 | |
US8200041B2 (en) | Hardware accelerated silhouette detection | |
CN109949421B (zh) | 三角网切割方法及装置 | |
CN108053751B (zh) | 一种电子地图导航路线上绘制方向箭头的方法和装置 | |
TWI406189B (zh) | 點雲三角網格面構建方法 | |
JP2022547873A (ja) | 点群データ処理方法及び装置 | |
CN113808196A (zh) | 平面融合定位方法、装置、电子设备及存储介质 | |
CN109410304B (zh) | 一种投影确定方法、装置及设备 | |
US10297075B2 (en) | Method of processing image data | |
CN110727755B (zh) | 一种地物形状规则化方法、电子设备及存储介质 | |
CN115952569B (zh) | 仿真方法、装置、电子设备及计算机可读存储介质 | |
CN109640258B (zh) | 一种无线传感网络三维定位方法及装置 | |
CN114255171A (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 |