《一种基于局部约束的网格模型碰撞处理方法.pdf》由会员分享,可在线阅读,更多相关《一种基于局部约束的网格模型碰撞处理方法.pdf(8页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103324784 A (43)申请公布日 2013.09.25 CN 103324784 A *CN103324784A* (21)申请号 201310210350.6 (22)申请日 2013.05.30 G06F 17/50(2006.01) (71)申请人 杭州电子科技大学 地址 310018 浙江省杭州市下沙高教园区 2 号大街 (72)发明人 杜鹏 王毅刚 唐敏 童若锋 (74)专利代理机构 杭州求是专利事务所有限公 司 33200 代理人 杜军 (54) 发明名称 一种基于局部约束的网格模型碰撞处理方法 (57) 摘要 本发明公开了一种基于局部约束的网格。
2、模型 碰撞处理方法。 现有方法计算速度慢, 不适用于对 实时性要求高的场合。本发明包括如下步骤 : 步 骤 (1) 只考虑内力作用, 使物体运动到下一时刻 ; 步骤 (2) 用离散碰撞检测方法检测碰撞对并施加 惩罚力 ; 步骤 (3) 采用连续碰撞检测方法得到碰 撞对, 并施加基于局部约束的碰撞冲量将碰撞对 分开。本发明通过利用连续碰撞检测方法和基于 局部约束的碰撞处理方法, 对网格模型进行运动 仿真, 改善了之前方法存在的 “穿透现象” , 大大提 高了碰撞处理的整体效率和速度。 (51)Int.Cl. 权利要求书 2 页 说明书 4 页 附图 1 页 (19)中华人民共和国国家知识产权局 。
3、(12)发明专利申请 权利要求书2页 说明书4页 附图1页 (10)申请公布号 CN 103324784 A CN 103324784 A *CN103324784A* 1/2 页 2 1. 一种基于局部约束的网格模型碰撞处理方法, 其特征在于包括如下步骤 : 步骤 (1) 在当前时刻 , 网格 模型在自身内力的作用下, 计算出在时间段内网格模型各个顶点的位移和平均速度, 进 而得到下一时刻网格模型各个顶点的坐标 ; 步骤 (2) 对更新后的网格模型各顶点位置, 采用离散碰撞检测方法得到点 / 三角形碰 撞对, 进而计算碰撞对中点与三角形之间的碰撞力, 将碰撞力施加到不同顶点上, 得到碰撞 后。
4、时间段内碰撞后的位移、 平均速度, 进而得到下一时刻网格模型各个顶点的坐标 ; 步骤 (3) 在网格模型从当前时刻到下一时刻的运动过程中, 采用连续碰撞检测方 法, 检测得到碰撞对, 进而采用局部约束法计算碰撞对中点与三角形的平均速度和冲量, 进 而得到下一时刻网格模型各个顶点的坐标。 2. 根据权利要求 1 所述的基于局部约束的网格模型碰撞处理方法, 其特征在于 : 所述 的步骤 (3) 中, 采用局部约束法求解的碰撞后的平均速度和冲量, 进而得到下一时刻网格 模型各个顶点的坐标, 包括如下步骤 : 3-1. 利用连续碰撞检测方法得到的点 / 三角形碰撞对, 获取当前时刻待处理点及其在 待处。
5、理三角形上投影点的三维坐标、 平均速度及网格模型厚度 ; 3-2. 使用公式、 分 别 计 算 碰 撞 后 待 处 理 点 P 及 其 在 三 角 形 投 影 点 T 的 平 均 速 度, 通 过 公 式 、分别计算处理点 P 及其在三角形 投影点 T 处的碰撞冲量 ; 其中,、分别表示 P、 T 碰撞前的平均速度,、分别表示 P、 T 的质量, h 表示网格模型厚度,为时间步长 ; 3-3. 利用速度 - 位移公式计算下一时刻网格模型各个顶点的位移, 进而求得各个顶点 的三维坐标。 3. 根据权利要求 1 所述的基于局部约束的网格模型碰撞处理方法, 其特征在于 : 所述 的步骤 (3) 中,。
6、 利用连续碰撞检测方法得到碰撞对, 包括如下步骤 : 3-4. 对待检测的三角形网格模型中的每个三角形构造对应的包围盒, 进而建立三角形 网格模型的包围盒层次结构 ; 3-5. 根据所述的包围盒层次结构, 构建包围盒测试树, 输出存在包围盒重叠的叶节 点 ; 3-6. 将步骤 3-5 输出的叶节点对应的三角形进一步分解为点 / 三角形对, 进行精确连 续碰撞检测。 4. 根据权利要求 1 所述的基于局部约束的网格模型碰撞处理方法, 其特征在于 : 所述 的步骤(1)中的模型内力计算方法, 步骤(2)中的离散碰撞检测方法、 计算碰撞对中点与三 权 利 要 求 书 CN 103324784 A 2。
7、 2/2 页 3 角形之间碰撞力的方法均为现有方法。 权 利 要 求 书 CN 103324784 A 3 1/4 页 4 一种基于局部约束的网格模型碰撞处理方法 技术领域 0001 本发明属于计算机仿真技术领域, 具体涉及一种基于局部约束的网格模型碰撞处 理方法。 背景技术 0002 基于三角形网格的离散碰撞检测 (DCD) 检测在固定时刻物体之间是否存在接触, 但是对于高速碰撞的物体, 采用该方法会遗漏碰撞。 为了解决这个问题, 我们引入了连续碰 撞检测 (CCD) 。 0003 CCD 通过插值获得物体在两个位置之间的运动路径, 进而检测在这个运动过程中 哪些部位发生了碰撞。该方法首先利。
8、用包围盒重叠测试输出存在重叠的包围盒对, 然后通 过精确碰撞检测来判断包围盒所对应的三角形是否发生了碰撞, 而三角形对的精确碰撞检 测过程又可分解为 6 种碰撞情况的检测 : 6 种顶点 / 三角形之间碰撞检测。该方法被广泛 地应用于物理现象仿真、 虚拟现实、 人工智能等多个领域。 0004 对于碰撞检测阶段得到的碰撞对, 通常采用两类方法处理。其一是基于全局约束 的碰撞处理方法, 该方法的提出基于一个事实 : 由于网格模型中的三角形单元与周围单元 存在连接关系, 所以, 任何碰撞对都不是独立的, 它也会对相邻单元造成影响。 基于此, 研究 人员提出了多种基于全局优化的求解方法。 但是这类方法。
9、存在一个不足, 计算速度慢, 不适 用于对实时性要求高的场合。 所以, 有人提出了另一类基于局部约束的求解方法, 该方法将 三角形碰撞对分解成点 / 三角形碰撞对, 然后分别处理, 大大提高了碰撞处理速度。 发明内容 0005 针对现有技术所存在的上述技术缺陷, 本发明提供了一种基于局部约束的网格模 型碰撞处理方法, 利用连续碰撞检测方法和基于局部约束的碰撞处理方法, 对网格模型进 行运动仿真, 改善了之前方法存在的 “穿透现象” , 提高了碰撞处理的整体效率和速度。 0006 一种基于局部约束的网格模型碰撞处理方法, 包括如下步骤 : 步骤 (1) 在当前时刻, 网格模型在自身内力的作用下,。
10、 计算出在时间段内网格模 型各个顶点的位移和平均速度, 进而得到下一时刻网格模型各个顶点的坐标 ; 步骤 (2) 对更新后的网格模型各顶点位置, 采用离散碰撞检测方法得到点 / 三角形碰 撞对, 进而计算碰撞对中点与三角形之间的碰撞力, 将碰撞力施加到不同顶点上, 得到碰撞 后时间段内碰撞后的位移、 平均速度, 进而得到下一时刻网格模型各个顶点的坐标 ; 所述的更新指网格模型经过时间段的自身内力作用后。 0007 所述的六个点 / 三角形测试对是由三角形对中其中一个三角形的顶点和三角形 对中另一个三角形共同形成的。 0008 步骤 (3) 在网格模型从当前时刻到下一时刻的运动过程中, 采用连续。
11、碰撞检 测方法, 检测得到碰撞对, 进而采用局部约束法计算碰撞对中点与三角形的平均速度和冲 说 明 书 CN 103324784 A 4 2/4 页 5 量, 进而得到下一时刻网格模型各个顶点的坐标。 0009 所述的步骤 (3) 中, 采用局部约束法求解的碰撞后的平均速度和冲量, 进而得到 下一时刻网格模型各个顶点的坐标, 包括如下步骤 : 3-1. 利用连续碰撞检测方法得到的点 / 三角形碰撞对, 获取当前时刻待处理点及其在 待处理三角形上投影点的三维坐标、 平均速度及网格模型厚度 ; 3-2. 使用公式、 分 别 计 算 碰 撞 后 待 处 理 点 P 及 其 在 三 角 形 投 影 点。
12、 T 的 平 均 速 度, 通 过 公 式 、分别计算处理点 P 及其在三角形 投影点 T 处的碰撞冲量 ; 其中,、分别表示 P、 T 碰撞前的平均速度,、分别表示 P、 T 的质量, h 表示网格模型厚度,为时间步长 ; 3-3. 利用速度 - 位移公式计算下一时刻网格模型各个顶点的位移, 进而求得各个顶点 的三维坐标。 0010 所述的步骤 (3) 中, 利用连续碰撞检测方法得到碰撞对, 包括如下步骤 : 3-4. 对待检测的三角形网格模型中的每个三角形构造对应的包围盒, 进而建立三角形 网格模型的包围盒层次结构 ; 3-5. 根据所述的包围盒层次结构, 构建包围盒测试树, 输出存在包围。
13、盒重叠的叶节 点 ; 3-6. 将步骤 3-5 输出的叶节点对应的三角形进一步分解为点 / 三角形对, 进行精确连 续碰撞检测。 0011 所述的步骤(1)中的模型内力计算方法, 步骤(2)中的离散碰撞检测方法、 计算碰 撞对中点与三角形之间碰撞力的方法均为现有方法。 0012 本发明有益效果如下 : 本发明通过利用连续碰撞检测方法和基于局部约束的碰撞处理方法, 对网格模型进行 运动仿真, 改善了之前方法存在的 “穿透现象” , 大大提高了碰撞处理的整体效率和速度。 附图说明 0013 图 1 为本发明流程示意图。 具体实施方式 0014 为了更为具体地描述本发明, 下面结合附图及具体实施方式。
14、对本发明的连续碰撞 检测方法进行详细说明。 0015 如图 1 所示, 一种基于局部约束的网格模型碰撞处理方法, 包括如下步骤 : 步骤 (1) 在当前时刻, 网格模型在自身内力的作用下, 计算出在时间段内网格模 说 明 书 CN 103324784 A 5 3/4 页 6 型各个顶点的位移和平均速度, 进而得到下一时刻网格模型各个顶点的坐标 ; 步骤 (2) 对更新后的网格模型各顶点位置, 采用离散碰撞检测方法得到点 / 三角形碰 撞对, 进而计算碰撞对中点与三角形之间的碰撞力, 将碰撞力施加到不同顶点上, 得到碰撞 后时间段内碰撞后的位移、 平均速度, 进而得到下一时刻网格模型各个顶点的坐。
15、标 ; 所述的更新指网格模型经过时间段的自身内力作用后。 0016 所述的六个点 / 三角形测试对是由三角形对中其中一个三角形的顶点和三角形 对中另一个三角形共同形成的。 0017 步骤 (3) 在网格模型从当前时刻到下一时刻的运动过程中, 采用连续碰撞检 测方法, 检测得到碰撞对, 进而采用局部约束法计算碰撞对中点与三角形之间的平均速度 和冲量, 进而得到下一时刻网格模型各个顶点的坐标。 0018 采用局部约束法求解的碰撞后的平均速度和冲量, 进而得到下一时刻模型各个顶 点的坐标, 包括如下步骤 : 3-1. 利用连续碰撞检测方法得到的点 / 三角形碰撞对, 获取当前时刻待处理点及其在 待处。
16、理三角形上投影点的三维坐标、 平均速度及网格模型厚度 ; 3-2. 使用公式、 分 别 计 算 碰 撞 后 待 处 理 点 P 及 其 在 三 角 形 投 影 点 T 的 平 均 速 度, 通 过 公 式 、分别计算处理点 P 及其在三角形 投影点 T 处的碰撞冲量 ; 其中,、分别表示 P、 T 碰撞前的平均速度,、分别表示 P、 T 的质量, h 表示网格模型厚度,为时间步长 ; 3-3. 利用速度 - 位移公式计算下一时刻网格模型各个顶点的位移, 进而求得各个顶点 的三维坐标。 0019 利用连续碰撞检测方法得到碰撞对, 包括如下步骤 : 3-4. 对待检测的三角形网格模型中的每个三角形。
17、构造对应的包围盒, 进而建立三角形 网格模型的包围盒层次结构 ; 3-5. 根据所述的包围盒层次结构, 构建包围盒测试树, 输出存在包围盒重叠的叶节 点 ; 3-6. 将步骤 3-5 输出的叶节点对应的三角形进一步分解为点 / 三角形对, 进行精确连 续碰撞检测。 0020 步骤 3-4 中, 为三角形网格柔性场景模型建立包围盒层次结构, 包括如下步骤 : a. 计算出三角形网格柔性场景模型中每个三角形的中心 ; b. 通过采用坐标轴投影分割法对所有三角形中心进行划分 : 将所有三角形中心分别 投影到三维坐标系的 x、 y、 z 轴上, 说 明 书 CN 103324784 A 6 4/4 页。
18、 7 b1. 选取轴上相距最远的两个三角形中心投影之间的距离, 将其中距离最大的轴作为 投影轴, 将投影轴上相距最远的两个三角形中心投影为端点的线段, 平分成两个子线段 ; 若该子线段对应的三角形网格柔性场景模型的局部只有一个三角形中心或没有三角形中 心, 则跳转到步骤 c ; b2. 将子线段对应的三角形网格柔性场景模型的局部继续投影到三维坐标系的 x、 y、 z 轴上 , 选取轴上相距最远的两个三角形中心投影之间的距离, 将其中距离最大的轴作为投 影轴, 将投影轴上相距最远的两个三角形中心投影为端点的线段, 平分成两个子线段 ; b3. 若步骤 d2 的子线段对应的三角形网格柔性场景模型的。
19、局部只有一个三角形中心 或没有三角形中心, 则进入步骤 c, 否者重复步骤 b2 ; c. 采用自底向上的方法为整个三角形网格柔性场景模型建立对应的包围盒层次结构。 0021 步骤 3-5 中, 当进行第 n 次碰撞检测时, 包围盒层次结构是根据第 n 次碰撞检测时 刻每个三角形更新后的空间位置, 对上一次碰撞检测过程的包围盒层次结构中最底层的包 围盒进行重构, 进而自底向上对上一次碰撞检测过程的包围盒层次结构进行整理更新而成 的, n 为大于 1 的自然数。 0022 步骤 3-6 中, 基于厚度的连续碰撞检测方法包括如下步骤 : d. 将输出的叶节点对应的三角形对分解为六个点 / 三角形测。
20、试对, 获取前一时刻和当 前时刻待检测三角形三个顶点的三维坐标、 待检测点的三维坐标、 待检测三角形的法向量、 三角形网格柔性场景模型厚度 ; e. 计 算 满 足的值,如 果,则 进 一 步 判断待检测点在三角形所在平面投影是否在三角形内部, 若是, 则判定待检测点 和 三 角 形 发 生 了 碰 撞 ;其 中 :, , , ,分别为前一时刻待检测三角形三个顶点的三维坐标,分别为当 前时刻待检测三角形三个顶点的三维坐标,和分别为前一时刻和当前时刻待检测三 角形的法向量, 为三角形网格柔性场景模型厚度,和分别为前一时刻和当前时刻 待检测点的三维坐标, 为误差修正值。 说 明 书 CN 103324784 A 7 1/1 页 8 图 1 说 明 书 附 图 CN 103324784 A 8 。