您当前的位置:免费教育资源网物理论文 → 文章内容

虚拟穿衣中织物模型的建立和碰撞检测的处理

作者:佚名  来源:本站整理  发布时间:2008-8-20 15:56:32

jPk,l‖)  其中,k是弹簧的弹性变形系数,R是P(i,j)邻点的集合,‖Pi,jPk,l‖0表示质点P(i,j)与质点P(k,l)之间的原始距离,弹簧的弹性变形系数k可以? 谰菟∮弥锏牟牧闲阅懿问呷范ā?/P>

   2.3 织物变形模型的求解我们选择显式欧拉方法来求解织物变形模型。求解公式如下:ai,j(t+△t)=1mi,jFi,j(t)Vi,j(t+△t)=Vi,j(t)+△tai,j(t+△t)Pi,j(t+△t)=Pi,j(t)+△tVi,j(t+△t)其中,Fi,j是质点P(i,j)所受所有力的合力,mi,j(t)是质点P(i,j)的质量,ai,j(t)、Vi,j(t)和Pi,j(t)分别是质点P(i,j)在时间t的加速度,速度和位置。△t是系统选定的时间步长。

   3 基于AABB树层次包围盒的碰撞检测

   3.1 建立AABB树一个碰撞体的AABB被定义为包含该碰撞体,且边平行于坐标轴的最小六面体。因此,描述一个AABB,仅需六个标量。在构造AABB包围盒时,需沿着碰撞体局部坐标系统的轴向(X,Y,Z)来构造,所以所有的AABB包围盒具有一致的方向。

   AABB树是基于AABB的二叉树,按照由上至下的递归细分方式构造生成的。在每一次递归过程中,要求取最小的AABB,需沿所选择的剖分面将碰撞体分为正负两半,并将所对应的原始几何元素(如三角面)分别归属正、负两边,整个递归过程类似于空间二叉剖分,只是每次剖分的对象是AABB,而不是空间区域。递归细分一直要进行到每一个叶子节点只包容一个原始几何元素为止,所以具有n个原始几何元素的AABB树具有n-1个非叶子节点和n个叶子节点。对于剖分面的选择,在本文中,选择垂直AABB的最长轴,且平分该轴的平面。经试验证明,这种方式,在大多数情况下的算法复杂度仅为O(nlogn),较其它的剖分面选择方法有了极大的提高。至于原始几何元素的归属则应依据几何元素的重心P在最长轴上的投影坐标。若投影坐标大于剖分面的坐标(mid),则在剖分面的正向,否则在负向,如图2所示。    图2 三角面归属负区域,因为其质心投影坐标小于剖分面的基准坐标

   3.2 AABB的相交判断AABB间的相交测试比较简单,两个AABB相交当且仅当它们在三个坐标轴上的投影区间均相交。通过投影,我们即将三维求交问题转化为一维求交问题。而对一维求交问题,我们则采用SAT(SeparatingAxesTest)[2]法。因SAT无需求交计算,只需比较两个包围盒分别在三个轴向上投影的重叠情况,即可得出相交测试结果,非常简单。现以在一个轴向上的投影情况为例说明:图3 AABBs在X轴向相交判断。

   设A,B为两包围盒,X为投影轴,CA,CB分别为A,B的中心点,PA,PB为点CA,CB在X上的投影。RA,RB分别为包围盒A,B在X上的投影。若RA+RB

  PAPB,(如图3所示)则在轴向X上A和B不相交,反之在轴向X上A和B邻接或相53第5期高成英等:虚拟穿衣中织物模型的建立和碰撞检测的处理  交。当包围盒A,B在三条轴向上的投影均相交时,则A,B相交。定义AABB的六个最大最小值分别确定了它在三个坐标轴上的投影区间,因此AABB间的相交测试最多只需六次比较运算,非常简单快速。

   3.3 AABB树的更新当衣片移动、旋转后,需要对AABB进行更新,根据定义AABB的6个最大最小值的组合,可以得到AABB的8个顶点,对这8个顶点进行相应的旋转和平移变化,并根据变化后的顶点计算新的AABB。当衣片发生变形时,需要重新计算AABB树中发生变形了的叶结点的AABB,再利用变形叶节点的新AABB来重新计算它们父节点的AABB。这种计算必须严格按照从下到上的方式进行。父节点AABB的具体求法为:令(Xmax1,Xmin1,Ymax1,Ymin1,Zmax1,Zmin1)和(Xmax2,Xmin2,Ymax2,Ymin2,Zmax2,Zmin2)分别是两个变形叶结点的AABB,则父结点的AABB即为(max(Xmax1,Xmax2),min(Xmin1,Xmin2),max(Ymax1,Ymax2),min(Ymin1,Ymin2),max(Zmax1,Zmax2),min(Zmin1,Zmin2),只需6次比较运算就完成一个结点的更新,其效率远远高于重新构造AABB包围盒树。

   3.4 基于AABB树的碰撞检测算法基于AABB树碰撞检测算法的核心是通过有效地遍历这两棵树,以确定在当前位置下,两个碰撞体的某些部分是否发生碰撞,这是一个双重递归遍历的过程。算法描述如下:step1:分别为人模和衣片构造AABB树。step2:人模的AABB树的根结点遍历衣片的AABB树。如果发现人模AABB树的根结点的包围盒与衣片AABB树内部结点的包围盒不相交,则停止向下遍历;如果遍历能到达衣片AABB树的叶节点,再用该叶节点遍历人模AABB树。如果能到达人模AABB树的叶节点,则进一步进行基本几何元素间的相交测试。step3:检测基本几何元素间是否相交。3.5 自碰撞检测在衣片缝合过程中,除了衣片同人模之间的碰撞外,由于衣片的动态变形,使得衣片与衣片自身间也有碰撞现象,因此必须进行进一步的自相交检测。在系统设计中,我们利用三角形表面曲率来简化计算。当邻近三角形法线的夹角较小时,它们不可能发生碰撞,只有当夹角超过阈值,才有可能碰撞。我们为每个三角形建立它的临近三角形列表,通过判断每个三角形的所有邻近区域的三角形表面曲率,来排除大部分不可能相交的情况,从而简化了计算。

   4 虚拟穿衣的具体实现步骤

   (1)读入二维服装CAD系统设计的衣片

   (2)选择所有需要缝合衣片的对应的缝合边

   (3)将二维衣片离散并形成初始的弹簧质点系统a)将衣片离散成规则四边域网格,再将四边域网格的对角线相连,形成规则三角形网格的弹簧质点系统。三角形的顶点形成质点,三角形的边形成相应的弹簧。衣片的三角化,正是为方便地建立衣片的AABB树;b)按质点间的相应关系,加入各种弹力。在离散衣片时,需特别注意的是在(2)中所选择的对应缝合边的长度一定要相等,且当衣片离散化时,在对应缝合边上的原始几何元素(这里为三角形)的个数也应相同。若在(2)中所选择的对应缝合边长度不等,或原始几何元素个数不同时,系统将需做一些预处理:将其中一条缝合边的所有信息删除,将另一条缝合边的相应信息赋给它。

   (4)将衣片交互式地放置在人体模型附近的初

上一页  [1] [2] 

  • 上一篇文章:论 惯 性
  • 下一篇文章:激光与空间技术
  • 文章评论 (评论内容只代表网友观点,与本站立场无关!)

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

             (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 -