一种分类应变限制的动态服装仿真方法

文档序号:6444375阅读:213来源:国知局
专利名称:一种分类应变限制的动态服装仿真方法
技术领域
本发明涉及计算机图形学技术领域,尤其涉及到计算机服装仿真技术领域。
背景技术
动态服装仿真已成为当今虚拟现实领域的热点和难点问题之一,真实,高效的服装仿真可以让虚拟角色更加栩栩如生,使其具有强烈的三维视觉效果。3D电影阿凡达中纳美族公主,热门网游魔兽世界中可爱的精灵,QQ聊天软件中人物的服装秀,还有各种动画中的人物,虚拟导游都需要有漂亮合体的服装。而在三维虚拟服装商城中,顾客也可以通过将挑好的虚拟服装穿在模特身上直观的获得三维动态效果,使人们不用上街也能体会到逛街试衣的乐趣。目前基于物理的仿真方法是动态服装仿真的主流,因为该方法有着极强的真实视觉效果,并且在实时性上也可以满足人们的需求。物理仿真方法中最常用的模型是质点-弹簧模型,该模型的详细细节可以参考文献1 :provot X. Deformation Constraintsin a Mass-Spring Model to Describe Rigid Cloth Behavior, Graphics Interface,Citeseer, 1996. 147-154 禾口文献 2 :Provot X. Collision and Self-Collision Handlingin Cloth Model Dedicated to Design Garments, Graphics Interface, Citeseer,1997,177-189。但是质点-弹簧模型会出现服装衣片拉伸过度和来回振荡的情况,所以服装衣片形变控制处理是关系到服装仿真效果的一个关键环节。在服装仿真发展的近20年中,出现了各种各样的形变处理方法。从处理方法的本质上可分为基于额外阻尼力的动态服装仿真和基于应变限制的动态服装仿真。基于额外阻尼力的服装仿真分为两类,一类是显式的使用额外阻尼力改变服装衣片质点所受合力的大小。另一类是将阻尼力作为限定条件包含在仿真的隐式积分系统中,在解该系统时隐式的发挥限制作用。文献3 Jeungwoo 0,Ahn J Y,Wohn K Y. Low dampedcloth simulation. Visual Computer, 2006, 22 (2) :70-79 采用了这种方法。通过额外阻尼力可以消除形变过度和振荡的问题,但是同样也会造成了明显的人工痕迹,比如服装形变过程中产生的明显粘滞感,服装衣片在人体表面悬浮,这些缺陷都会使服装贴身状态的仿真不可实现,大大破坏了服装仿真的真实感。在电影和虚拟试衣等对服装真实感有高要求的地方,使用额外阻尼力会影响用户的视觉体验。发明专利公开号(CN)为101140663A的发明未考虑物理方法的动态服装仿真中质点可能会产生振荡和形变过度的问题。基于应变限制的动态服装仿真是从几何层面上限制质点领域内的微线段在各个应变方向上变化的大小。在预处理阶段设定应变限制的阈值,在单位时间步内,对所有的微线段进行和该阈值相关的限定处理,从而消除病态的形变。详细内容可以参考文献4:ThomaszewskiB, Pabst S, Stra β er W G. Continuum—based Strain Limiting. ComputerGraphics Forum, 2009, 28 (2) :569_576。应变限制的方法还包括构成服装模型图元间二面角的限制处理。在三维空间中,若图元间二面角角度变化过大,也会造成不可预知的效果。比如,角度变化超过180度时,图元会发生穿插现象,显然真实世界中的服装不会出现这种现象°文献5 :Wang H Μ, O'Brien J, Ramamoorthi R. Multi-resolution isotropic strainlimiting. ACM Transactions on Graphics, 2010, 29 (6) :1_10 在文献 4 的基础上对线应变限制进行了改进,并且在文中给出了一种二面角的限制处理方法。不过,该方法是直接在正应变方向上进行限制,也就是在正应变矩阵的对角线上直接进行限制。这样做的优点是可以直接定义微线元在各正应变方向上的伸长比。但是,在人物驱动的服装仿真中各微线元在相同正应变方向上的伸长是不同的,如果在限定各微线元在正应变方向上的伸长时还要保持线元的方向向量不变,采用预定义的伸长比,无疑是不可行的。另外,使用应变限制确实能够很好的预防振荡和形变过度,并且不会产生在额外阻尼力方法中会出现的粘滞和服装衣片的悬浮,适合应用于有高逼真性需求的仿真。但是,应变限制的本质是几何层面上的处理,而三维空间中的几何运算无论是微线元的应变计算还是构成服装图元二面角的计算,开销都是非常大的。如果是对高分辨率的服装进行仿真,需要计算的微线元和二面角的数量是非常大的,总的计算开销会让人无法忍受,几乎无法满足高实时性需求的应用。没有谁会喜欢观看一部断断续续的电影,也不会有人能够操作不连贯的网络游戏人物角色。

发明内容
鉴于现有技术的以上不足,本发明的目的是解决物理方法在动态服装仿真中质点可能会产生振荡和形变过度的问题,保证服装仿真的真实感。并且,在使用改进的应变方法保证真实感的同时,尽量减少应变处理的计算开销,提升系统的计算效率,保证动态仿真的实时性。本发明的目的通过如下手段来实现。一种分类应变限制的动态服装仿真方法,改进的应变限制方法被应用到动态服装仿真,防止仿真中的失真现象。整个动态服装仿真方法采用如下的步骤1、服装仿真动画的计算输入人体和服装模型,然后构建质点-弹簧模型,采用三角网格结构,其质点-弹簧模型中的剪切弹簧和拉伸弹簧由相邻的点表示,弯曲弹簧由相间的点表示,不同的弹簧采用不同的弹性系数,最后采用半隐式积分法构造线性方程组;2、振荡形变过度区域标识输入两种弹簧在稳定阻尼区间下的近似弹性系数和仿真中弹簧形变时能量的损耗;采用稳定阻尼区间下的第一个阻尼系数作为仿真的系数,在同样的质点位移下,分别计算出仿真中弹簧力对质点所做的功和采用稳定阻尼区间系数时弹簧力对质点所做的功,并且用稳定功减去仿真功和弹簧形变中能量的损耗,得到差值,如果该差值大于0,相关弹簧连接的质点就会发生振荡,将该质点划入会发生振荡的点集中;3、标识区的应变限制处理在步骤2中得到的会发生振荡的点的集合后,对集合中的点连接的弹簧进行应变限制的处理;首先要根据主应变的概念计算出该点连接的弹簧在当前时间点相对于上一时间点的变形梯度张量,然后根据该张量计算出弹簧的伸长率,接着将该伸长率与设定的伸长率阈值进行比较,若大于阈值则将伸长率赋值为阈值,若小于阈值则不进行处理;在限定长度之后,针对主应变方向上的各分量分别设一个未知量,这些未知量表示各应变分量的放缩系数,通过应变分量和放缩系数之间的比例关系,以及相应弹簧的伸长率阈值解出该点在当前时间点上放缩系数的具体值,通过放缩系数的具体值更新被处理的弹簧,并通过弹簧和起始点的位置更新末端点的位置;4、碰撞检测及响应我们对人体采用AABB包围盒的方法进行包围盒树的构造,然后将3中更新后的末端点的空间坐标与AABB包围盒树上每个结点代表的包围盒进行包含判定,如果点在包围盒中,则递归的获取该包围盒的子结点包围盒,进行同样的判定操作。如此递归进行直至发现末端点不在某一包围盒结点内或者该点在叶子结点的包围盒内。对于前一种情况不进行任何操作,而对于后一种情况进行末端点与叶子包围盒中的三角形图元进行碰撞检测,如果发生碰撞则进行响应操作。采用本发明方法该发明的优点在于1)首先,与发明专利公开号(CN)为101140663A的发明不同的是本发明采用改进的应变限制方法处理了动态服装仿真中会出现的振荡和形变过度的问题,解决了动态服装仿真中的振荡和形变过度造成的服装视觉效果上的失真;其次,它没有使用额外阻尼力时产生的服装形变粘滞感和服装在人体皮肤上悬浮的现象;最后,它不像传统的应变限制方法那样人为的定义各个主应变方向上的拉伸比,而是在仿真过程中实时计算。2)我们将图元角度变化的限制问题转化为近似的边应变限制问题,既省去了高昂的角度计算开销,也解决了角度的限制问题。由于角度的限制回归到了边的应变限制问题,所以边和角形变过度问题的解决思路在整个系统保持一致,使整个系统的实现更简洁。3)对应变限制计算开销大的问题进行了处理,使得系统不用对服装模型的所有点进行应变处理,减少了服装仿真系统的计算开销,提升了仿真效率,更好的保证了服装仿真的实时性,使得高分辨率下虚拟人驱动的服装仿真也可以用应变限制的方法进行处理。


如下图1是本发明的仿真工作流程图。图2是本发明中织物稳定阻尼区间和质点受力示意图。图3是本发明质点-弹簧模型结构图。图4是本发明弹簧构建流程图。
具体实施例方式本发明的方法可分为四大步骤,如仿真工作流程图1中所示包括1应用动力学知识计算服装仿真动画,2振荡和形变过度区域标识,3用我们改进的应变限制方法进行处理,4碰撞检测及响应。与发明专利公开号(CN)为101140663A的发明不同的是,我们多出了步骤2和步骤3,通过这两步我们处理了病态的质点振荡和形变过度问题。本发明的具体步骤如下1)服装仿真动画的计算输入人体和服装模型,然后构建质点-弹簧模型。该仿真中采用的是三角网格结构,其质点-弹簧模型中的剪切弹簧和拉伸弹簧由相邻的点表示,弯曲弹簧由相间的点表示,具体的构造方式如附图4中的流程一样。首先遍历某点A的所有邻点,将其保存进该点的拉伸(剪切)弹簧集合;然后针对该集合中的所有点遍历他们的邻点,并且判断该点在集合中是否出现过,如果没有出现过,就将该点保存进点A的弯曲弹簧集合中。对于不同的弹簧我们采用不同的弹性系数,最后采用文献3中的半隐式积分法构造线性方程组。2)振荡形变过度区域标识输入两种弹簧在稳定阻尼区间下的近似弹性系数和仿真中弹簧形变时能量的损耗。因为稳定阻尼区间下的近似弹性系数不是该发明需要解决的问题,具体采用什么方法获取可以由使用者自己决定,我们采用的方法详细内容可以参考文献6 =Volino P,Magnenat-ThalmannN,Faure F. A simple approach to nonlinear tensile stiffness foraccurate cloth simulation. ACM Transactions on Graphisc,2009,28 (4)。在仿真中,我们采用稳定阻尼区间下的第一个阻尼系数作为仿真的系数。在同样的质点位移下,我们分别计算出仿真中弹簧力对质点所做的功(仿真功)和采用稳定阻尼区间系数时弹簧力对质点所做的功(稳定功),并且用稳定功减去仿真功和弹簧形变中能量的损耗。如果得到的结果大于0,则该弹簧连接的质点就会发生振荡,将其划入会发生振荡的点集中,并且在后面对该点连接的相关弹簧进行应变限制的处理。3)标识区的应变限制处理在步骤2中得到了会发生振荡的点的集合后,需要对集合中的点连接的弹簧进行应变限制的处理。首先要根据主应变的概念计算出该点连接的弹簧在当前时间点相对于上一时间点的变形梯度张量,然后根据该张量计算出弹簧的伸长率,接着将该伸长率与我们定义的伸长率阈值进行比较,若大于阈值则将伸长率赋值为阈值,若小于阈值则不进行处理。在限定长度之后,我们对于主应变方向上的分量分别设一个未知量,这些未知量表示各应变分量的放缩系数。通过应变分量和放缩系数之间的比例关系,以及相应弹簧的伸长率阈值我们可以解出该点在当前时间点上放缩系数的具体值。通过放缩系数的具体值更新被处理的弹簧,并通过弹簧和起始点的位置更新末端点的位置。因为不同类型弹簧的伸长率阈值不同,所以在处理弹簧的时候需要注意当前处理的弹簧是哪种弹簧。因为我们的服装模型来自于POSER建模软件,构成模型的三角形图元为锐角三角形,所以我们用弯曲弹簧近似的替代三角形的二面角进行限制,如果其它使用者的模型不是来自于POSER建模软件,可以米用文献 7 Zhang W J, Kong J L. Improved delaunay growing algorithmsand application. Proceedings of International Conference on Water Resource andEnvironmental Protection. Xi'an, China, 2011 :2896-2899.中的 delaunay 方法先进行处理。4)碰撞检测及响应我们在仿真中采用AABB包围盒的方法进行碰撞检测和响应。实施例(1)为系统输入50帧人体模型数据,1帧的服装模型数据。其中每帧人体模型的面有115520个,服装模型的面有116M个。然后对服装的三角形图元构建质点-弹簧模型。附图3的a子图代表传统的质点-弹簧网格结构,而在b,c子图中我们以7个点为例给出了仿真中我们的模型在三角网格结构下的弹簧示意图。c子图中的实线代表拉伸(剪切),虚线代表弯曲弹簧。仿真中弹簧的构建以图北中点1的拉伸(剪切)弹簧为例。先遍历点1邻点,发现点2、3,在点1和2、3间建立拉伸(剪切)弹簧。再遍历点2、3的所有邻点,发现点2的邻点有3和6,接着判断3是否1的邻点,因为3是1的邻点,所以3不是1的间点;再判断6是否是1的邻点,6不是1的邻点,所以它是1的间点,在点1和点6之间建立弯曲弹簧。如图3c中点1和点6之间有代表弯曲弹簧的虚线连接,而点1和点3之间是表示拉伸(剪切)弹簧的连接。弹簧构建好后需要采用文献3中的半隐式积分方法计算所有点的位置变化量来更新点的位置,这里以点2为例对半隐式积分方法的使用进行说明。通过半隐式积分法,对点2我们可以列出等式(1),(2)
权利要求
1. 一种分类应变限制的动态服装仿真方法,改进的应变限制方法被应用到动态服装仿真,防止仿真中的失真现象。整个服装仿真方法采用如下的步骤(1)服装仿真动画的计算输入人体和服装模型,然后构建质点-弹簧模型,采用三角网格结构,其质点-弹簧模型中的剪切弹簧和拉伸弹簧由相邻的点表示,弯曲弹簧由相间的点表示,不同的弹簧采用不同的弹性系数,最后采用半隐式积分法构造线性方程组;(2)振荡形变过度区域标识输入两种弹簧在稳定阻尼区间下的近似弹性系数和仿真中弹簧形变时能量的损耗;采用稳定阻尼区间下的第一个阻尼系数作为仿真的系数,在同样的质点位移下,分别计算出仿真中弹簧力对质点所做的功和采用稳定阻尼区间系数时弹簧力对质点所做的功,并且用稳定功减去仿真功和弹簧形变中能量的损耗,得到差值,如果该差值大于0,相关弹簧连接的质点就会发生振荡,将该质点划入会发生振荡的点集中;(3)标识区的应变限制处理在步骤2中得到的会发生振荡的点的集合后,对集合中的点连接的弹簧进行应变限制的处理;首先要根据主应变的概念计算出该点连接的弹簧在当前时间点相对于上一时间点的变形梯度张量,然后根据该张量计算出弹簧的伸长率,接着将该伸长率与设定的伸长率阈值进行比较,若大于阈值则将伸长率赋值为阈值,若小于阈值则不进行处理;在限定长度之后,针对主应变方向上的各分量分别设一个未知量,这些未知量表示各应变分量的放缩系数,通过应变分量和放缩系数之间的比例关系,以及相应弹簧的伸长率阈值解出该点在当前时间点上放缩系数的具体值,通过放缩系数的具体值更新被处理的弹簧,并通过弹簧和起始点的位置更新末端点的位置;(4)碰撞检测及响应采用AABB包围盒的方法进行碰撞检测和响应。
全文摘要
本发明公开了一种分类应变限制的动态服装仿真方法,应变限制的方法应用到动态服装仿真,预防仿真中的失真现象。该方法采用的主要步骤包括应用动力学知识计算服装仿真动画、振荡形变过度区域的标识;对标识区域用我们改进的应变限制方法进行处理;碰撞检测及响应。本发明采用改进的应变限制方法处理了动态服装仿真中会出现的振荡和形变过度的问题,解决了动态服装仿真中的振荡和形变过度造成的服装视觉效果上的失真,也没有使用额外阻尼力时产生的服装形变粘滞感和服装在人体皮肤上悬浮的现象。
文档编号G06T13/40GK102592304SQ20111045430
公开日2012年7月18日 申请日期2011年12月30日 优先权日2011年12月30日
发明者侯进, 向宇 申请人:西南交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1