CN111968149B - 一种大规模场景中的粗碰撞检测方法 - Google Patents
一种大规模场景中的粗碰撞检测方法 Download PDFInfo
- Publication number
- CN111968149B CN111968149B CN202010688879.9A CN202010688879A CN111968149B CN 111968149 B CN111968149 B CN 111968149B CN 202010688879 A CN202010688879 A CN 202010688879A CN 111968149 B CN111968149 B CN 111968149B
- Authority
- CN
- China
- Prior art keywords
- scene
- objects
- collision detection
- dynamic
- process data
- 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.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000003068 static effect Effects 0.000 claims abstract description 20
- 238000009826 distribution Methods 0.000 claims abstract description 16
- 238000013138 pruning Methods 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 230000002123 temporal effect Effects 0.000 claims description 7
- 230000009191 jumping Effects 0.000 claims description 4
- 230000008030 elimination Effects 0.000 abstract 1
- 238000003379 elimination reaction Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000005653 Brownian motion process Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005537 brownian motion Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及计算机图形处理领域,尤其涉及一种大规模场景中的粗碰撞检测方法。本方法主要用来粗略检测大规模虚拟场景中发生的碰撞,通过引入两个参数判断场景中的物体分布与动静情况,判断优先采用空间推理还是优先采用时间推理的数据处理方式,进一步执行粗碰撞检测。实现较低数据复杂度情况下快速的碰撞剔除。
Description
技术领域
本发明涉及计算机图形处理领域,尤其涉及一种大规模场景中的粗碰撞检测方法。
背景技术
碰撞检测应用在许多领域,如计算机仿真、物理模拟、实时建模及机器人运动规划中,都起到相当重要的作用。尤其是比较大的模拟场景中,对碰撞检测的要求更高,因为需要处理较多的数据,同时满足较快的检测速度。目前比较普遍的碰撞检测方法,主要由两阶段组成,分为粗碰撞检测(Broad-phase Collision Detection)和精确碰撞检测(Narrow-phase Collision detection)。粗碰撞检测通过枚举检测所有可能的碰撞对,获得潜在的碰撞对,减少精确碰撞检测的数据处理量;精碰撞检测方法通过检测潜在的碰撞检测对,进一步确定碰撞与否。
粗碰撞检测通常通过三种策略来处理全局的碰撞,即形状简化,空间推理和时间推理。这三种策略允许快速接近检测对象,输出足够接近且可能发生碰撞的对象列表。形状简化包括用简单的几何图元完全限制每个对象,提供快速的碰撞检测。轴对齐包围盒是应用最多的简化图元,其他的例如球体,定向包围盒和K-离散定向多边形。尽管简化形状在局部作用于每个对象,但空间推理在整体上起作用,对对象的分布进行推理,并识别它们之间的关系,例如簇,分隔轴和排序的方法。通常,通过使用空间分区数据结构,空间排序或散列来实现空间推理。时间推理在于利用模拟中的先前知识并预测其未来的行为,例如识别静态对象,重用先前框架中的计算和结构,甚至推断轨迹以预测碰撞。
目前的方法大多采用单一的数据处理策略进行粗碰撞检测,且其应用场景具有局限性。虽然某一种方法在其所实验的场景具有较好的碰撞检测效果,但应用于其他场景中时效果极差。
发明内容
本发明提供了一种大规模场景中的粗碰撞检测方法,通过不同顺序的数据处理方式,实现较低的碰撞检测数据复杂度,进一步提高粗碰撞检测的速度。本发明为了实现较快速的粗碰撞检测,并且可应用于大部分的大规模场景中,提供了如下技术方案:
一种大规模场景中的粗碰撞检测方法,通过以下步骤实现:
第一步:获取场景中物体的数据;
第二步:构建或者更新空间层次包围盒结构;
第三步:引入参数,记录场景中物体的分布与运动情况,其具体实现方法为:
在构建层次包围盒时,引入参数a:记录场景中物体的分布情况,参数a表示为其中树结构中的理论节点数通过树的度乘以叶节点的层次得到,树结构中的实际节点数为树结构的所有叶节点数;当a=0时表示场景中物体分布非常不均匀,当a=1时表示场景中物体分布均匀;同时定义影响系数α,其影响系数具体取值由大规模场景决定,其默认值取为α=1;
在构建层次包围盒时,引入参数b:记录场景中角色的动静比例,参数b表示为其中当b=0时表示场景中物体均静止,当b=1时表示场景中物体均运动;同时定义影响系数β,其影响系数具体取值由大规模场景决定,其默认值取为β=1;
第四步:执行粗碰撞检测。比较两个参数,判断优先采用哪种方式处理数据:
若aα<bβ,说明场景中物体运动多、静止少,且分布相对不均匀,选择优先采用空间推理处理数据,再采用时间推理处理数据,通过以下步骤并行多线程实现粗碰撞检测:
(1)采用空间细分方法,将物体较多的区域分配更多的资源,使负载均衡;
(2)采用扫描修剪算法,将包围盒排序降维至一维轴中,存储列表;
(3)采用增量搜索,确定列表中静止的物体的包围盒,排除静止与静止物体的包围盒的碰撞检测对;
(4)进行一维修剪,即检测静止与动态、动态与动态物体的包围盒是否相交。
若aα≥bβ,说明场景中物体运动少、静止多,且分布相对均匀,选择优先采用时间推理处理数据,再采用空间推理处理数据,通过以下步骤并行多线程实现粗碰撞检测:
(1)采用增量搜索,确定场景中运动物体的包围盒;
(2)采用扫描修剪算法,将包围盒排序降维至一维轴中;
(3)进行一维修剪,即检测动态与静止、动态与动态物体的包围盒是否相交。
第五步:若发生碰撞,输出粗碰撞检测结果;若未发生碰撞,跳转到第二步,直至没有包围盒结构更新为止。
本发明的有益效果是:该方法明显优化粗碰撞检测过程。通过引入参数来判断数据处理的顺序,较其他流行方法的有较低的数据复杂度,进一步提升碰撞检测速度。
附图说明
图1为一种大规模环境中的粗碰撞检测方法的流程图;
图2为大规模环境的示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的碰撞检测方法进行详细说明。
本发明提供大规模环境中的粗碰撞检测方法,如图1所示的检测方法的流程图,执行相应的步骤,其主要实施步骤如下:
第一步:获取场景中物体的数据;
第二步:构建或者更新空间层次包围盒结构,其包围盒结构可采用轴对齐包围盒或球包围盒;
第三步:引入参数,记录场景中物体的分布与运动情况,其具体实现方法为:
第四步:执行粗碰撞检测。比较两个参数,判断优先采用哪种方式处理数据:
若aα<bβ,选择优先采用空间推理处理数据,再采用时间推理处理数据,通过以下步骤并行多线程实现粗碰撞检测:
(1)采用空间细分方法,将物体较多的区域分配更多的资源,使负载均衡;
(2)采用扫描修剪算法,将包围盒排序降维至一维轴中,存储列表;
(3)采用增量搜索,确定列表中静止的物体的包围盒,排除静止与静止物体的包围盒的碰撞检测对;
(4)进行一维修剪,即检测静止与动态、动态与动态物体的包围盒是否相交。
若aα≥bβ,选择优先采用时间推理处理数据,再采用空间推理处理数据,通过以下步骤并行多线程实现粗碰撞检测:
(1)采用增量搜索,确定场景中运动物体的包围盒;
(2)采用扫描修剪算法,将包围盒排序降维至一维轴中;
(3)进行一维修剪,即检测动态与静止、动态与动态物体的包围盒是否相交。
第五步:若发生碰撞,输出粗碰撞检测结果;若未发生碰撞,跳转到第二步,直至没有包围盒结构更新为止。
实施案例:
本发明选择分布较均匀的球体模拟大规模的场景,其场景示意图如图2所示。其中部分球体在场景中做布朗运动。此案例的实施步骤如下:
第一步:获得场景中的二进制数据,将二进制数据做为文件输入到程序算法中;
第二步:构建空间八叉树包围盒结构,其包围盒结构采用球包围盒;
第四步:执行粗碰撞检测。比较两个参数,发现aα≥bβ,选择优先采用时间推理处理数据,再采用空间推理处理数据,通过以下步骤进行粗碰撞检测:
(1)采用增量搜索,并行遍历层次包围盒结构,扩大球包围盒1.01倍大小,判断物体更新后是否仍然在扩大的包围盒内;仍在包围盒内的物体定义为静止的物体,否则定义为运动的物体;
(2)采用扫描修剪算法,多线程处理将包围盒排序降维至一维轴中;
(3)并行多线程进行一维修剪,即检测动态与静止、动态与动态物体的包围盒是否相交。
第五步:若发生碰撞,输出粗碰撞检测结果;若未发生碰撞,跳转到第二步,直至没有包围盒结构更新为止。
以上为对本发明所提供的一种大规模场景中的粗碰撞检测方法的描述,依据本发明实施的思想,在具体实施方式及具体细节上均会有改变之处。综上,本说明书内容不应理解为对本发明的限制。
Claims (5)
1.一种大规模场景中的粗碰撞检测方法,其特征在于实现如下步骤:
第一步:获取场景中物体的数据;
第二步:构建或者更新空间层次包围盒结构;
第三步:引入参数,记录场景中物体的分布与运动情况,其具体实现方法为:
引入参数a:记录场景中物体的分布情况;同时定义影响系数α,其影响系数具体取值由大规模场景决定,其默认值取为α=1;
引入参数b:记录场景中角色的动静比例;同时定义影响系数β,其影响系数具体取值由大规模场景决定,其默认值取为β=1;
第四步:执行粗碰撞检测,其具体实现方法为:
比较两个参数,判断优先采用哪种方式处理数据:
若aα<bβ,选择优先采用空间推理处理数据,再采用时间推理处理数据,进行粗碰撞检测;
若aα≥bβ,选择优先采用时间推理处理数据,再采用空间推理处理数据,进行粗碰撞检测;
第五步:若发生碰撞,输出粗碰撞检测结果;若未发生碰撞,跳转到第二步,直至没有包围盒结构更新为止。
4.根据权利要求1所述的一种大规模场景中的粗碰撞检测方法,其特征在于,第四步中优先采用空间推理处理数据,再采用时间推理处理数据,具体实现方法为:
(1)采用空间细分方法,将物体较多的区域分配更多的资源,使负载均衡;
(2)采用扫描修剪算法,将包围盒排序降维至一维轴中,存储列表;
(3)采用增量搜索,确定列表中静止的物体的包围盒,剔除静止与静止物体的包围盒的碰撞检测对;
(4)进行一维修剪,即检测静止与动态、动态与动态物体的包围盒是否相交。
5.根据权利要求1所述的一种大规模场景中的粗碰撞检测方法,其特征在于,第四步中优先采用时间推理处理数据,再采用空间推理处理数据,具体实现方法为:
(1)采用增量搜索,确定场景中运动物体的包围盒;
(2)采用扫描修剪算法,将包围盒排序降维至一维轴中;
(3)进行一维修剪,即检测动态与静止、动态与动态物体的包围盒是否相交。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010688879.9A CN111968149B (zh) | 2020-07-17 | 2020-07-17 | 一种大规模场景中的粗碰撞检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010688879.9A CN111968149B (zh) | 2020-07-17 | 2020-07-17 | 一种大规模场景中的粗碰撞检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111968149A CN111968149A (zh) | 2020-11-20 |
CN111968149B true CN111968149B (zh) | 2022-03-22 |
Family
ID=73361927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010688879.9A Expired - Fee Related CN111968149B (zh) | 2020-07-17 | 2020-07-17 | 一种大规模场景中的粗碰撞检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111968149B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593366A (zh) * | 2009-06-24 | 2009-12-02 | 北京航空航天大学 | 一种基于平衡二叉树的大规模虚拟场景碰撞检测方法 |
US10319132B2 (en) * | 2014-05-08 | 2019-06-11 | Nvidia Corporation | Method and system for representing objects with velocity-dependent particles |
CN104766371A (zh) * | 2015-04-13 | 2015-07-08 | 南京工程学院 | 一种大规模场景中物体碰撞检测方法 |
US9928640B2 (en) * | 2015-12-18 | 2018-03-27 | Intel Corporation | Decompression and traversal of a bounding volume hierarchy |
CN111062135B (zh) * | 2019-12-18 | 2024-01-02 | 哈尔滨理工大学 | 一种精确的碰撞检测方法 |
-
2020
- 2020-07-17 CN CN202010688879.9A patent/CN111968149B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN111968149A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8384723B2 (en) | Method and system of rendering parallel global illumination | |
US8279227B2 (en) | Method for detecting collisions among large numbers of particles | |
US20030227455A1 (en) | Grid-based loose octree for spatial partitioning | |
US20110282641A1 (en) | Method and system for real-time particle simulation | |
EP3736776B1 (en) | Apparatus, system and method for the generation of polygonal meshes | |
CN105389850A (zh) | 一种大规模三维场景的新型可见性生成方法 | |
Guizilini et al. | Large-scale 3d scene reconstruction with hilbert maps | |
US9424370B2 (en) | System and method for spatial partitioning of CAD models | |
CN115984564A (zh) | 一种基于体素聚类和稀疏卷积的点云语义分割方法和系统 | |
CN111968149B (zh) | 一种大规模场景中的粗碰撞检测方法 | |
Bergs et al. | Development of a voxelization tool for the calculation of vector-based workpiece representations | |
WO2023218074A1 (en) | Training method for training a machine learning algorithm, segmentation method, computer program product and segmentation device | |
Wenzel et al. | Accelerating navigation in the VecGeom geometry modeller | |
Mateo et al. | Hierarchical, Dense and Dynamic 3D Reconstruction Based on VDB Data Structure for Robotic Manipulation Tasks | |
Cao et al. | A fast and generalized broad-phase collision detection method based on kd-tree spatial subdivision and sweep-and-prune | |
Yin et al. | Fast BVH construction and refit for ray tracing of dynamic scenes | |
Steinlechner et al. | Adaptive pointcloud segmentation for assisted interactions | |
Schauer et al. | Performance comparison between state-of-the-art point-cloud based collision detection approaches on the CPU and GPU | |
Yao et al. | Jump Over Block (JOB): An Efficient Line-of-Sight Checker for Grid/Voxel Maps With Sparse Obstacles | |
CN117078825B (zh) | 一种点云数据线上渲染修改方法、系统、设备及介质 | |
CN109949420A (zh) | 适用于GPU的Delaunay三角剖分网格细化方法、GPU及系统 | |
CN117911662B (zh) | 基于深度霍夫投票的数字孪生场景语义分割方法及系统 | |
CN116416409B (zh) | 一种流体模拟粒子自适应分辨率表面重建方法及系统 | |
US20240028784A1 (en) | Segmenting a building scene | |
Zompas | Development of a three dimensional path planner for aerial robotic workers |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220322 |