一种衣物自碰撞检测低层裁剪优化方法

文档序号:8457431阅读:191来源:国知局
一种衣物自碰撞检测低层裁剪优化方法
【技术领域】
[0001] 本发明涉及一种衣物自碰撞检测低层裁剪优化方法,属于虚拟衣物仿真技术领 域。
【背景技术】
[0002] 在衣物动态仿真过程中,碰撞检测是最耗时的部分。碰撞检测过程中,首先需要检 测出所有发生碰撞的三角形对,然后对每个三角形对分配基元对进行后续基本相交测试。 在每个时间步长内,需要判断网格的顶点与三角形、边与边之间的碰撞情况,对于N个顶点 的衣物网格,进行自碰撞检测的时间复杂度是O (N2)。碰撞检测成为衣物动态仿真过程中的 主要瓶颈,为了对自碰撞检测进行优化,研宄者们提出一系列优化方法,分为三角形层面的 高层裁剪方法和基元对层面的低层裁剪方法。
[0003] 在以往的研宄工作中,低层裁剪最简单的方法是,在分配过程中维护两个数据库, 分别记录已经进行基本相交测试的VF基元对和EE基元对。Hutter和Fuhrmann提出基元 包围盒的方法,碰撞检测过程中使用基元层次包围盒代替三角形层次包围盒,能够有效的 裁剪掉不发生碰撞的基元对。Curtis提出代表三角形机制,通过将每个基元特征惟一的分 配给一个包含它的三角形,消除冗余的基元对。Tang通过建立孤立集对邻接三角形对的基 元对进行裁剪,邻接三角形对未被非邻接三角形对包含的基元对构成孤立集中的元素。除 此之外,Tang等人提出过滤器的方法,过滤掉不发生共面的基元对。通过计算基元对在时 间步长内的投影距离进行不共面测试,若基元对不发生共面,则不会发生碰撞,可以直接裁 剪掉,无需进行基本相交测试。
[0004] 以往自碰撞检测低层裁剪方法主要存在以下问题:
[0005] (1)基本低层裁剪方法实现简单,能够有效的消除重复的基元对基本相交测试, 但对每个候选三角形对分配基元对时,需要查询数据库,时间开销大,影响自碰撞检测的效 率。
[0006] (2)基元层次包围盒方法需要维护多个基元层次包围盒,影响仿真效率。
[0007] 针对以上问题,本发明对虚拟衣物仿真技术和自碰撞检测低层裁剪方法做了进一 步的研宄,一种基于衣物自碰撞检测低层裁剪优化方法,其核心内容可以总结为:低层裁剪 阶段,首先进行基于特征分配的低层裁剪优化,通过代表三角形的特征分配机制,裁剪掉冗 余的基元对,在对候选三角形对分配基元对时进行基元包围盒相交测试,裁剪掉基元包围 盒不相交的基元对。在此基础上,进行基于不共面过滤器的低层裁剪优化,通过不共面测 试,裁剪掉时间步长内不发生共面的基元对。

【发明内容】

[0008] 本发明要解决的技术问题是:克服现有技术的不足,提供一种衣物自碰撞检测低 层裁剪优化方法,针对虚拟衣物仿真这一具体应用给出一种全新的自碰撞检测优化方法。
[0009] 本发明采用的技术方案:首先进行基于特征分配的低层裁剪优化,在此基础上,进 行基于不共面过滤器的低层裁剪优化。
[0010] 该方案实现的步骤:
[0011] (1)进行基于特征分配的低层裁剪优化。通过特征分配裁剪掉冗余的基元对,在对 候选三角形对分配基元对时,进行基元包围盒相交测试,裁剪掉包围盒不相交的基元对;
[0012] (2)进行基于不共面过滤器的低层裁剪优化,通过不共面测试,过滤掉时间步长内 不发生共面的基元对,进一步较少候选基元对的数量,提高自碰撞检测的效率;
[0013] 本发明与现有技术相比的有益效果是:
[0014] 本发明的低层裁剪优化方法能够有效的裁剪掉了冗余和不发生碰撞的基元对,减 少了进行后续基本相交测试的基元对的数量,提高了自碰撞检测的效率。
【附图说明】
[0015] 图1 一种衣物自碰撞检测低层裁剪优化方法步骤示意图;
[0016] 图2基本低层裁剪实验结果不意图;
[0017] 图3基于特征分配的低层裁剪优化结果示意图;
[0018] 图4基于不共面过滤器的低层裁剪优化结果示意图。
【具体实施方式】
[0019] 下面结合附图及【具体实施方式】对本发明进一步详细说明。
[0020] (1)进行基于特征分配的低层裁剪优化。通过特征分配裁剪掉冗余的基元对,在对 候选三角形对分配基元对时,进行基元包围盒相交测试,裁剪掉包围盒不相交的基元对;
[0021] 第一步,预处理阶段,对网格进行特征分配。
[0022] 每个三角形的数据结构中增加两个属性,分别用来记录该三角形分配到的特征顶 点和特征边的数量。对网格进行特征分配,分配过程使用贪婪算法,依次遍历每个三角形, 如果该三角形存在未被分配的基元(顶点、边),则将其分配给该三角形。特征分配过程中, 对每个三角形的顶点列表和边列表进行重新排序,使得分配到的特征基元位于顶点/边列 表的前面部分。
[0023] 第二步,碰撞检测阶段,每个时间步长,对高层裁剪得到的候选三角形对,分配进 行后续基本相交测试的候选基元对。
[0024] 首先判断候选三角形对是否包含可兼容的特征对,如果至少有一个三角形分配到 一个或多个顶点或者两个三角形都分配到一条或多条边,则该三角形对包含可兼容的特征 对,继续第二步。如果两个三角形不包含可兼容的特征对,则跳过该三角形对。
[0025] 第三步,分配候选基元对时,进行基元包围盒的相交测试。
[0026] 1、三角形A代表的每个顶点与三角形B进行VF基元包围盒相交测试,若基元包围 盒相交,则构成一个VF候选基元对;
[0027] 2、三角形B代表的每个顶点与三角形A进行VF基元包围盒相交测试,若基元包围 盒相交,则构成一个VF候选基元对;
[0028] 3、三角形A代表的每个特征边分别与三角形B代表的每个特征边进行EE基元包 围盒的相交测试,若基元包围盒相交,则构成一个EE候选基元对。
[0029] EE基元包围盒的相交测试,每个时间步长,首先分别构建两条边的AABB包围盒, 然后进行AABB包围盒相交测试即可。VF基元包围盒相交测试,由于连续碰撞检测的每个时 间步长内,顶点的轨迹是一条线段,线段的AABB包围盒紧凑型差,进行包围盒相交测试的 裁剪效率不高,所以进行VF基元包围盒相交测试时,直接用线段与三角形包围盒进行相交 测试。使用分离轴的方法进行线段与包围盒的相交测试。
[0030] (2)进行基于不共面过滤器的低层裁剪优化,通过不共面测试,过滤掉时间步长内 不发生共面的基元对,进一步较少候选基元对的数量,提高自碰撞检测的效率。
[0031] 第一步,在碰撞检测阶段,每个时间步长,通过计算基元对的投影距离,对VF基元 对进行不共面测试。设时间步长[0,1]的起点、终点、任意时刻顶点P位置分别为PpPpP t, 三角形T的三个顶点位置分别为(aQ,bQ,cQ)、(a^ bp C1)、(at,bt,ct)。
[0032] 首先,时间步长归一化为[0,1],每个顶点的速度乘以时间步长Λ t ;
[0033] 其次,计算步长内三角形法向量的三个控制点rvnp w,计算公式如下:
[0034] n。= (b Q-a。)X (CtTaci)Ii1= (b ^a1) X (Cfa1)
[0035] ; = 丨 2
[0036] ~ aI
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1