离散碰撞检测算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Copyright 2008 By Neusoft Group. All rights reserved
研究背景和研究意义
• 目前研究的意义
– 虚拟场景中的物体模型越来越复杂 – 在仿真中对实时性和真实性的要求越来越高 – 现有的碰撞检测算法无法满足要求
Copyright 2008 By Neusoft Group. All rights reserved
Copyright 2008 By Neusoft Group. All rights reserved
碰撞检测算法框架
• 归纳出一个统一的碰撞检测算法框架
详细检测阶段 初步检测阶 段 逐步求精 层 精确求交 层
Copyright 2008 By Neusoft Group. All rights reserved
Copyright 2008 By Neusoft Group. All rights reserved
研究目标
• 提高碰撞检测算法的效率以达到实时性要 求 • 突破基于图象算法在适用面和检测精度上 的局限性
Copyright 2008 By Neusoft Group. All rights reserved
• 连续碰撞检测算法
– 连续的时间间隔内进行碰撞检测 – 计算速度还太慢 – [Cameron 1990][Canny 1986][Redon 2001][Redon 2002a]
Copyright 2008 By Neusoft Group. All rights reserved
基于空间域的碰撞检测算法分类
• 仅能在凸体间进行碰撞检测, • 绘制过程往往直接针对物体进行,缺乏必要的优化 手段, • 性能不够理想
Copyright 2008 By Neusoft Group. All rights reserved
本章研究意义
• 算法设计目的
– 继承一般基于图象的碰撞检测算法优点 – 突破局限性
• 能够在保证效率的前提下处理任意形状多面体之间 的碰撞检测问题
基于空间域的碰撞检测算法分类
• 基于图象空间的碰撞检测算法
– Shinya等[Shinya 1991]和Rossignac等 [Rossignac 1992] – Myszkowski等[Myszkow 1995] – Baciu等[Baciu 1997][Baciu 1999] – Hoff等[Hoff 2001],Kim等[Kim 2002], [Lombardo 1999],[Vassilev 2001], [Heidelb 2003],[Govindar 2003] – 基于可编程图形硬件….
麻雀虽小,五脏俱全
• 从两个角度对碰撞检测算法进行分类
– 从时间域的角度来分 – 从空间域的角度来分
Copyright 2008 By Neusoft Group. All rights reserved
基于时间域的碰撞检测算法分类
• 分为静态、离散和连续的碰撞检测算法 • 静态碰撞检测算法
– 静止状态下进行碰撞检测 – [Dobkin 1985][Agarwal 1991][Chazelle 1989]
– 层次包围球树[Hubbard 1993][Hubbard 1995][Palmer 1995][O’Sullivan 1999]、 – AABB层次树(Aligned Axis Bounding Box)[Zachmann 1997][Bergen 1997][Larsson 2001]、 – OBB层次树(Oriented Bounding Box)[Gottschalk 1996] – k-dop层次树(Discrete Orientation Polytope)[Klosowski 1998][Zachmann 1998] – QuOSPO 层次树(Quantized Orientation Slabs with Primary Orientations) [He 1999] – 凸块层次树[Ehmann 2001] – 混合层次包围体树[Wan 2001]等等
隐函数 曲面
参数曲 面
体表示 模型
Copyright 2008 By Neusoft Group. All rights reserved
基于空间域的碰撞检测算法分类
• 基于物体空间的碰撞检测算法
– 采用一般表示模型的碰撞检测算法
• 面向多边形表示模型的碰撞检测算法
– [Hubbard 1995][Gottschalk 1996] [Klosowski 1998][Zachmann 1998]
基于空间域的碰撞检测算法分类
• 基于物体空间的碰撞检测算法
– 采用一般表示模型的碰撞检测算法 • 多边形表示模型
– 多边形集合,结构化表示模型
• 非多边形表示模型
– CSG表示模型,隐函数曲面,参数曲面,体表示模型
几何模型 多边形表 示模型 非多边形 表示模型
多边形 集合
结构化表 示模型
CSG 表 示模型
碰撞检测
Copyright 2008 By Neusoft Group. All rights reserved
抛砖引玉
• 碰撞检测问题
– 是机器人、动画仿真、虚拟现实等领域不可回避的问 题之一
• 基本任务
– 确定两个或多个物体彼此之间是否发生接触或穿透。
• 起源
– 早期在机器人路径规划、自动装配规划等领域中,为 检测机器人与场景中的物体或零件与零件之间是否发 生碰撞,产生了一系列碰撞检测算法。
Copyright 2008 By Neusoft Group. All rights reserved
基于空间域的碰撞检测算法分类
• 基于物体空间的碰撞检测算法 • 基于图象空间的碰撞检测算法
– 利用图形硬件 – 对物体的二维图象采样 – 相应的深度信息
Copyright 2008 By Neusoft Group. All rights reserved
• 面向凸体的碰撞检测算法
Copyright 2008 By Neusoft Group. All rights reserved
基于空间域的碰撞检测算法分类
• 基于物体空间的碰撞检测算法
– 面向凸体的碰撞检测算法
• 基于特征的碰撞检测算法
– Lin-Canny的“最邻近特征算法”[Lin 1991, Lin1993] – [Lin 1995], [Cohen 1995], [Chung 1996], [Mirtich 1998], [Ehmann 2000], [Ehmann 2001]
– 精确求交层
• 主要处理多边形面片或基本体素之间的精确相交检 测
Copyright 2008 By Neusoft Group. All rights reserved
目前存在的问题
• • • • 处理大规模复杂场景的能力不足 处理非凸物体的能力不足 基于图象的碰撞检测算法的精度不高 面向特定应用领域的高效碰撞检测算法缺 乏 • 离散碰撞检测算法的刺穿和遗漏问题
• 基于单纯形(Simplex)的碰撞检测算法
– Gilbert、Johnson和Keerthi [Gilbert 1988][Gilbert 1990]提出的GJK算法 – [Cameron 1997][Bergen 1999]
Copyright 2008 By Neusoft Group. All rights reserved
基于空间域的碰撞检测算法分类
• 基于物体空间的碰撞检测算法
– 采用一般表示模型的碰撞检测算法
• 面向CSG表示模型
– [Zeiller 1993][Su 1996][Poutain 2001]
• 面向隐函数曲面表示
– [Farouki 1989][Miller 1991][Shene 1991]
• 面向参数曲面表示
源自文库
碰撞检测运行阶段
在凸块节点间进行 图象空间的碰撞检 测 检 测 凸 块 OBB 包 围 盒之间是否相交,并 由检测结果设置视域 参数 遍历物体对的两 个层次凸块树
碰撞检测结 果获取和返 回
– 非均匀有理B样条曲线(NURBS) – [Turnbull 1998]
• 体表示模型
– 主要用于虚拟手术中可变形物体的碰撞检测 – [Heidelb 2003][Boyles1999][魏迎梅 2001]
Copyright 2008 By Neusoft Group. All rights reserved
Copyright 2008 By Neusoft Group. All rights reserved
基于空间域的碰撞检测算法分类
• 基于物体空间的碰撞检测算法
– 采用空间结构的碰撞检测算法
• 层次包围体树法,包围体类型的不同来加以区分
(a) 包围球 (b) AABB包围盒 (c)OBB包围盒 (d) 6-dop包围体 (e)凸包包围体 包围体二维示意图
• 离散碰撞检测算法
– 在每一时间的离散点上进行碰撞检测 – 是研究的重点和热点 [Lin 1998][Jiménez 2001]
Copyright 2008 By Neusoft Group. All rights reserved
基于时间域的碰撞检测算法分类
• 离散碰撞检测算法
– 存在问题
• 存在刺穿现象 • 遗漏应该发生的碰撞
• 算法采用的主要技术
– 基于表面的凸分解 – 三角形带压缩编码技术 – OBB包围盒技术
Copyright 2008 By Neusoft Group. All rights reserved
算法概述
预处理阶段
建构层次 物体模型输 入 表面凸分解得到凸片集 合,由凸片集生成凸块 集合 凸块二叉 树 为层次树中每 个凸块节点生 成 OBB 包 围 盒 对每个凸块 进行三角形 带的压缩

层次包围体树法(hierarchical bounding volume trees)
Copyright 2008 By Neusoft Group. All rights reserved
基于空间域的碰撞检测算法分类
• 基于物体空间的碰撞检测算法
– 采用空间结构的碰撞检测算法
• 层次包围体树法,包围体类型的不同来加以区分
• 基于物体空间的碰撞检测算法 • 基于图象空间的碰撞检测算法
Copyright 2008 By Neusoft Group. All rights reserved
基于空间域的碰撞检测算法分类
• 基于物体空间的碰撞检测算法
– 采用一般表示模型的碰撞检测算法 – 采用空间结构的碰撞检测算法
Copyright 2008 By Neusoft Group. All rights reserved
基于空间域的碰撞检测算法分类
• 基于物体空间的碰撞检测算法
– 采用一般表示模型的碰撞检测算法 – 采用空间结构的碰撞检测算法
• 空间剖分法(space decomposition)
– 均匀剖分、BSP树、k-d树和八叉树(Octree)等 [Samet 1989][Naylor 1990][Bourma 1991]
碰撞检测算法的一般框架
• 初步检测阶段
– 空间剖分法 – 基于插入排序的“掠扫和裁剪”法([Cohen 1995])
Copyright 2008 By Neusoft Group. All rights reserved
碰撞检测算法的一般框架
• 详细检测阶段
– 逐步求精层
• 空间层次剖分技术和层次包围体树技术
Copyright 2008 By Neusoft Group. All rights reserved
第二部分 基于图象的 快速碰撞检测算法
Copyright 2008 By Neusoft Group. All rights reserved
本章研究意义
• 多数基于图象的碰撞检测算法优缺点
– 有效利用图形硬件绘制加速功能,减轻CPU计 算负荷,提高碰撞检测效率 – 存在的问题
研究内容
• 从三个角度出发,设计、实现并验证了一 组新的碰撞检测算法
– 从利用图形硬件辅助通用计算的角度出发,研 究并提出一种新的基于图象空间的快速碰撞检 测算法 – 从利用可编程图形硬件高并行性的角度出发, 提高基于图象的碰撞检测算法的速度与精确性 – 从利用多处理机并行计算能力的角度出发,提 出一种并行的快速碰撞检测算法
相关文档
最新文档