三维服装试衣系统——碰撞检测与响应的研究与实现-毕业论文_第1页
三维服装试衣系统——碰撞检测与响应的研究与实现-毕业论文_第2页
三维服装试衣系统——碰撞检测与响应的研究与实现-毕业论文_第3页
三维服装试衣系统——碰撞检测与响应的研究与实现-毕业论文_第4页
三维服装试衣系统——碰撞检测与响应的研究与实现-毕业论文_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/t/oa j本科毕业论文题i:三维服装试衣系统碰撞检测及响应的研究与实现姓 名:学 院:软件学院系:软件工程 专 业:软件工程 年 级:级职称:副教授学 号: 指导教师:摘要三维服装试衣系统是基于虚拟现实技术的一个重点实验项目,而碰撞检测及响应是该系 统的一个重要组成部分。碰撞主要分为两个部分:一是衣片与人体的碰撞,二是衣片的自碰撞。衣片与人体的碰 撞检测,其目的为根据不同体型,设定衣片与人体的最佳距离,以及为碰撞响应提供先决条 件。衣片的自碰撞检测,是根据衣片的悬垂等性质来模拟真实的衣服皱褶等现象。本文先描述对衣片进行碰撞前的准备工作,包括:三角网格划分、添加弹簧等。接着对 布料与球体的碰

2、撞进行研究,并将其改进成前后两个衣片与人体的碰撞检测及响应。首先对 衣片及人体进行包围盒划分,其采用的方法为基于aabb包围盒划分;接着控制衣片的运动, 使之逐渐向人体靠近;最后检查到衣片和人体的碰撞,并进行碰撞响应。本文进一步的对碰 撞后的前后衣片进行缝合,使z成为一件完整的衣服。最后将缝合后的衣片整合在同一个数 组中,以便今后对衣片添加纹理、风吹等真实效果。综上所述,木论文对碰撞检测及响应的整个流程进行整合概括,对每一步骤所用到的算 法进行分析试验,并且最终将分开的衣片合成完整的衣服,使之穿在人体上,己达到模拟现 实的虚拟结果。关键词:三维试衣系统碰撞检测及响应衣片缝合abstract3d

3、 garmentfitting system is a focus of pilot project that based on virtual reality technology, and the collision-checking and response is an important component of this systemcollision in eludes two parts: one is the collision between cloth and body; the other is the self-collision of cloth. the first

4、 one sets up a best distanee between the cloth and the body for different somatotypes, and provides pre-conditions for collision-response. the second one, according to cloth's overhanging phenomena, simulates the real clothat first, this paper describes the prepare work for collision-checking, s

5、uch as triangle gridding partition, adding springs and so on. then we study the collision principle between sphere and the cloth, and improve it onto a collision between a body and two cloth which before and after it. at the first step, they (both body and cloth) are required to be partitioned by aa

6、bb boxes second, we have to control the cloth moving to the body .at last, the system checks whether the cloth comes into collision with the body. if it happens, the system carries out the collision-response immediately.furthermore, this paper describes the processes of cloth-stitching after collisi

7、on so that they can become integrative clothes. then, the system puts all the particles of cloth into an array so as to add texture, wind and other real natural effect.td sum up, this paper generalizes the entire processes of the collision-checking and response, an alyzes the algorithm used on each

8、step, and fin ally puts the clothes which are made up by several separate clothes on the model. this imitation is a vivid virtual reality effect.keywords: 3d garment-fitting system collision-checking and response cloth-stitching目录第一章引言7第二章衣片划分研究82. 1 第一步 衣片网格划分82.2第二步衣片添加弹簧102.3第三步衣片包围盒划分112.4第四步 人体

9、包围盒划分112.5第五步 衣片向人体运动112.6实验效果图11第三章建立层次包围盒133. 1层次包围盒概念133.2层次包围盒约束条件133.3层次包围盒算法分类133. 3. 1 包围球 sphere143. 3.2方向包围盒0bb143. 3.3沿坐标轴的包围盒aabb143. 3. 4三种包围盒算法比较与抉择153.4 aabb包围盒存储优化153. 4. 1 aabb树的构造163.4.2优化方法163. 4.3优化后结果173. 4.4 人体 aabb 树17第四章碰撞检测184. 1衣片与人体碰撞检测184. 1. 1碰撞检测原理184.1.2基于aabb层次包围盒树的碰撞检

10、测算法实现194. 1.3碰撞检测两大步骤194.2衣片自碰撞检测204. 2. 1自碰撞检测由来与原理214. 2. 2自碰撞检测的算法实现224.3实验效果图244.3. 1未进行碰撞检测244. 3.2碰撞检测后25第五章碰撞响应265. 1碰撞响应定义265.2碰撞响应分析265. 3碰撞口向应实现方法265.4碰撞响应效果图275.5实验效果图27第六章衣片缝合286. 1衣片缝合原理286.2衣片缝合步骤286.3衣片缝合的算法实现296.4实验效果图30第七章总结与展望317. 1总结317.2展望31致谢32参考文献33附录34contentschapter one intro

11、duction7chapter two research in cloth gridding82.1 step i gridding partition of cloth82.2 step ii adding springs on cloth102.3 steplll boxes partition of cloth112.4 stepiv boxes partition of body112.5 step v cloth moving close to body112.6 some pictures of experiment result11chpater three building d

12、elamination boxes133.1 notion of delamination boxes133.2 obligation condition of delamination boxes133.3 different sorts of delamination boxes arithmetic133.3.1 sphere box143.3.2 obb box143.3.3 aabb box143.3.4 comparision and choise among these three sorts153.4 optimizion of aabb box's storage15

13、3.4.1 structure of aabb tree163.4.2 the optimizion method163.4.3 result after optimizion173.4.4 the aabb tree of body17chapter four collision-checking184.1 collision-checking between cloth and body184.1.1 theory of collision-checking184.1.2 arithmetic realization of collision-checking by aabb box194

14、.1.3 two steps of collision-checking194.2 self-collision of cloth214.2.1 origin and theory of self-collision214.2.2 arithmetic realization of self-collision224.3 some pictures of experiment result244.3.1 results before collision-checking244.3.2 results after collision-checking25chapter five collisio

15、n response265.1 definition of collision response265.2 analysis of collision response265.3 realization method of collision response265.4 results of collision response275.5 some pictures of experiment result27chapter six clothstitching286.1 theory of cloth-stitching286.2 steps of cloth-stitching286.3

16、arithmetic realization of cloth-stitching296.4 some pictures of experiment result30chapter seven summary and prospect317.1 summary错误!未定义书签。7.2 prospect错误!未定义书签。acknowledgements32references33supplements34第一章引言随着计算机技术以及互联网的快速发展,服装的购买方式及途径也在悄然改变。一般的, 我们需要亲自到商店进行选购、试穿,还不一定能够买到称心如意的衣服。并且这种途径存 在着时间、地点等多重限

17、制。如果是在冬天,由于天气寒冷,试穿衣服不方便,会大大降低 消费者的购买热情。这种情况下,市场就会对一种可以在互联网上模拟现实中商店选购、试穿衣服的服装试 衣系统产生消费需求。数量庞大的网民、广阔的市场前景等导致三维服装试衣系统的出现。综合三维服装试衣系统的便利,有以下几个具体方而:(1)消除地点限制:无论你身处何方,只要在互联网上,都是你的地盘;(2)节约交通成本:不出家门就可获得同样信息,减少交通开销;(3)缩短选购时间:琳琅满目的商品,系统己将它们分门别类;(4)方便轻松试衣:只要轻点鼠标,选中的衣服穿着效果马上显示;(5)快捷交换意见:在网络上,可以及时与好友交换购买建议。在这个三维服

18、装试衣系统屮,为了更贴近现实屮穿在人体身上的效果,使顾客看见真实 的服装展示,需要用到一项较难但却重要的技术一一碰撞检测及响应。该技术是模拟真实场 景的三维穿衣效果,而取代简单的二维平面贴图方式。构造动态服装模拟试穿的过程中,必 须能够实时、精确地判断织物中人体模型之间是否发生碰撞。碰撞检测需要对发生碰撞的物体进行一些前期的准备工作,包括:衣片的网格划分并添 加弹簧力,对衣片及人体进行包围盒划分,控制衣片的运动等。本文将对这些过程做简单的 介绍。接着,当衣片靠近人体吋,最重要的碰撞检测及响应过程就开始执行了。这个部分本 文将进行重点详细的介绍。最后,将衣片进行缝合成完整的衣服。这个部分木文也将

19、进行详 细的讲解。第二章衣片划分研究前期准备工作是进行碰撞检测的基础,是不可或缺的一部分。在准备过程中,衣片划分的研究是关键的一步。准备工作流程如图21所示:图2-1准备工作流程图2. 1第一步衣片网格划分衣片的网格划分釆用delaunay三角网格化算法山,此算法的优点为:1最接近:以最近临的三点形成三角形,且各线段(三角形的边)皆不相交;2. 唯一性:不论从区域何处开始构建,最终都将得到一致的结果;3. 最优性:任意两个相邻三角形形成的凸四边形的对角线如果可以互换的话,那么两个三角形六个内角中最小的角度不会变大;4. 最规则:如果将三角网屮的每个三角形的最小角进行升序排列,则delaunay

20、三角网的排列得到的数值最大;5. 区域性:新增、删除、移动某一个顶点时只会影响临近的三角形;6. 具有凸多边形的外壳:三角网最外层的边界形成一个凸多边形的外壳。效果如图2-2所示:图2-2复杂衣片网格化三角形剖分步骤:(1) 将顶点列表的数据进行预排序;(2) 构造包容所有顶点的一个大三角形,形成三角形列表中第一个三角形;(3) 对形成的点的连接关系进行优化,得到散乱数据点的最优三角剖分,即delaunay三角剖分。 将形成的三角形加入到三角形列表中;(4) 逐次加入新点,继续上述过程直至遍历所有的顶点。将大三角形从三角形列表中剔除,得到的网格的拓扑信息:顶点列表和三角形列表。以下是根据这些步

21、骤的效果如图2-3所示:c 剖分修正d顶点优化b三角剖分图2-3衣片网格化步骤2. 2第二步衣片添加弹簧衣片网格化后的顶点是质点,边是弹簧,每一个质点与周围质点以弹簧相连。根据织物的力学性能,弹簧分为3类:结构弹簧、剪切弹簧以及柔性弹簧。如图24所示:结构弹簧剪切弹簧柔性弹簧图2-4三种弹簧类型之前的程序采用的是止则栅格网格化方法,它的弹簧模型是止则栅格弹簧,如图25所示:一/ 2 / t(111 f3一/图2-5正则栅格弹簧模型现在根据后续程序进行碰撞检测的需求,将此弹簧模型改为三角网格弹簧,如图2-6所示:图2-6三角网格弹簧模型其中三种弹簧模型没有改变,只对其位置做出调整。调整后的弹簧模

22、型适应程序的需 要,完好的实现了后面的碰撞检测。2. 3第三步衣片包围盒划分衣片的包围盒划分也是这次工作的重点,将在第三章具体讲解。详见10页。2.4第四步人体包围盒划分人体包围盒划分采用和衣片相同的方法,详见第三章10页。2.5第五步衣片向人体运动衣片向人体运动的本质是实吋更新质点的位置,通过定义一个时间间隔deltatimemass变 量,运行integratesysovertime()函数以确定下一步质点运动的位置,当然衣片运动的开始即 时碰撞检测的开始。2.6实验效果图衣片向人体运动过程中,曾经出现两种错误现象:一个是衣片扭结在一起;另一个是衣片上下部分运动不一致。如图27所示:图2-

23、7运动时衣片出现的错误现象经过调整修正后,衣片的运动恢复正常。如图28所示:图2-8调整后的效果第三章建立层次包围盒3. 1层次包围盒概念在过去的几十年中,碰撞检测的研究取得了很大的进步,形成了一些较为成熟的技术和 算法。在这些算法中,层次包围盒的应用比较广泛,它是通过用几何特性简单的包围盒来近 似地描述复杂的儿何对象,进而通过构造树状层次结构来逐步逼近对象的儿何模型,直到儿 乎完全获得对象的几何特性。这种方法计算量小,运行速度较快等优点正是我们从多种方法 中选择它的原因。人体/衣片是一种复杂的物体,它有很多几何子部分组成,可进一步求出这些几何子部分 的包围盒,这些子部分乂递归地由更小的部分组

24、成,由此可将人体/衣片及其子部分的包围盒 组成树状层次结构。该树的根节点是包围整个人体/衣片的包围盒,叶节点是包围人体/衣片的 基本几何元(三角而片)的包围盒,中间节点则对应于各级子部分的包围盒。3. 2层次包围盒约束条件对于应用于碰撞检测的包围盒,一般有以下两方面的约束:(1) 简单性:包围盒应该是简单的几何体,至少应该比被包围的几何对彖简单。简单性不 仅表现为几何形状简单易于计算,而口包括相交测试算法的快速简单;(2) 紧密性:包围盒应该尽可能地贴近被包围的几何对象。紧密性可以用包围盒b与被包 围对象g间的hausdorff距离r来衡量(r=maxmindist(b,g), r越小,紧密性

25、越好,紧密性直接 关系到需要进行相交测试的包围盒数目。3. 3层次包围盒算法分类根据包围盒选择的不同,基于包围盒的碰撞检测算法主要有:(1) 基于包围球(sphere);(2) 方向包围盒 obb (oriented bounding box);(3) 沿坐标轴的包围盒 aabb (axis-al谊ned bounding boxes)o3. 3. 1 包围球 sphere一个给定对象的包围球(sphere)被定义为包含该对象的最小的球体。球是相当简单的几 何体,只需要圆心和半径就可以完全表示出一个球体,对于电脑绘图来说可以节省存储空间。 计算给定对象的包围球,首先需分别计算对象的基本几何元素

26、集合中所有元素的顶点x坐标、 y坐标、z坐标的均值来确定包围球的球心c,再由球心与三个最大值坐标所确定的点间的距 离计算半径r,存储一个包围球只需两个浮点数。包围球确定的区域为:r=(& y.z)t|(x- c$+(y c+(z cjvr2()如图3-1所75:3. 3.2方向包盒obb一个给定对象的方向包围盒obb(oriented bounding box)被定义为包含该对象且相对于 坐标轴方向任意的最小长方体。假定一个obb的中心为c,三个相互正交的方向:vl、v2、v3,三方向上边长的“半径”为rl、r2已,则obb确定的区域为:(3-2)r= aiw+brv+crv- lw&

27、amp;bcwl如图3-2所75:3. 3. 3沿坐标轴的包围盒aabb一个给定对象的沿坐标轴包围盒aabb(axis-aligned bounding boxes)被定义为包含该对象且各边平行于坐标轴的最小六面体。aabb的技术十分简单,只需分别计算组成对象的 基本几何元素集合中各个元素顶点的x坐标、y坐标和z坐标的最小值和最大值仏、ly、l和4、 uy、u»。描述一个aabb仅需六个标量。在构造aabb时,需沿着物体局部坐标系的轴向来 构造,所有的aabb具有一致的方向。aabb确定的区域为:(3-3)r= (x,y. z)| bw x w i* ly w y w u?lx z

28、w uj如图3-3所示:3. 3. 4三种包盒算法比较与抉择三种不同的算法有各自的优缺点,其比较如下:表3-1三种包围盒方法比较包围盒方法紧密性检测速度检测难度检测精度应用范网sphere快容易宽obb中等快较易中等较宽aabb中等较快较易中等宽根据所做的三维服装试衣系统需要较快的运行速度、较精确的检测精度等特点以及实验 室的软硬件设备条件,我们选择了第三种一一aabb包围盒算法对衣片和人体进行划分。3. 4 aabb 包盒存储优化上述的算法选择主要为提高碰撞检测运行速度而考虑,而内存需求问题也是一个不可忽 略的研究重点。包围盒树中存储每个三角形通常需要一定的字节数,若不对这些节点进行存 储优

29、化,会导致数据量庞大,进而影响运行速度和质量。3. 4. 1 aabb树的构造采用自顶向下的方法来构造aabb树,算法g如下:(1) 求出根节点v所包含的基本几何元素的坐标值;(2) 求出节点v的mbb;(3) 沿着当前的aabb的最长轴,按三角形的重心划分为两个子集;(4) 把两个子集分别作为根节点,返回步骤2。直到每个基本儿何元素的aabb都是叶子节点。 由此得到的aabb树是一棵完全的二叉树,每个叶子节点仅含有一个三角形。举一例说明,以卜是一棵aabb树,如图34所示:图3-4优化前的aabb树这棵树需要存储12个叶子节点,11个内部节点。3. 4. 2优化方法然后通过以下两个方法来进行

30、存储优化:(1) 根节点优化:对于一颗有n个叶节点的aabb树来说,共有n1个内部节点,忽略 根节点添加的1个字节的标志位,可以节省(n2)*(3221)个字节。(2) 叶节点优化:对于叶节点做重叠测试时直接采取三角形间的相交测试,而取代包围盒 z间的重叠测试;同样的,当对物体a的叶节点和物体b的内部节点(或者相反)进行 重叠测试吋,应用快速三角形与包围盒相交测试moller算法,也可以取代包围盒之间 的重叠测试,从而减少算法的时间开销。3. 4. 3优化后结果优化后结果如图3-5所示:图3-5优化后的aabb树从两幅图的对比上可以明显看出优化后的树结构更为简洁,减少了约一半的内存需求。3.

31、4. 4人体aabb树根据上述方法,构造人体aabb层次包围盒如图3-6所示:图3-6人体aabb树层次结构图第四章碰撞检测4. 1衣片与人体碰撞检测4. 1. 1碰撞检测原理碰撞检测的输入模型是构成几何对彖的基本几何元素(本系统使用的是三角形)的集合, 其任务是确定在某一时刻两个模型是否发生干涉,即它们的交集是否不为空,如发生碰撞, 还需确定碰撞部位(参与碰撞的基本几何元素)。从几何上讲,碰撞检测表现为两个多面体的求交测试问题;按对象所处的空间可分为二 维平面碰撞检测和三维空间碰撞检测。平而碰撞检测相对简单一些,己经有较为成熟的检测算法,而三维空间碰撞检测则要复杂得多。三维空间的碰撞检测需要

32、以下流程,如图41所示:check the subtree图41碰撞检测流程阳4. 1. 2基于aabb层次包围盒树的碰撞检测算法实现当对三角剖分后的织物建立起了层次包围盒二叉树后,同理对人体也进行三角剖分,建 立另一棵层次包围盒二叉树。则判断织物与周围环境屮其他物体z间是否有碰撞就归为对两 棵二叉树进行遍历和判交。基于aabb树碰撞检测算法的核心是通过有效遍历这两棵树,以 确定在当前时刻,活动对象(衣片)的某些部分是否与人体的某些部分发生碰撞,这是一个 双重递归遍历的过程。首先用衣片包围盒树的根节点遍历人体包围盒树,如果能到达叶节点,再用该叶节点遍 历活动对彖的包围盒树。如果能到达活动对彖的

33、叶节点,则进一步进行基本几何元素的相交 测试。其基本思想是利用几何特性简单的包围盒代替复杂的几何对象进行相交测试,如果两 个节点上的包围盒不相交,则它们所包围的对象的基木几何元素的子集必定不相交,从而不 需要对子集中的元素做进一步的相交测试。之所以先用衣片的根节点遍历人体包围盒树,主要考虑在通常情况下人体比衣片要大而 且复杂的多。选用从衣片包围盒树的根节点开始遍历人体包围盒树,可以快速的定位衣片在 人体上的位置,较早的排除与衣片不相交的部分。反之,如果先用人体的根节点遍历衣片包 围盒树,往往会增加包围盒相交测试的次数w4. 1. 3碰撞检测两大步骤(1)第一步:粗略检测aabb包围盒的判交将a

34、abb包围盒分别投影到x, y, z坐标轴上,显然,两个包围盒有重叠的充要条件是 当且仅当它们在三个轴上的投影区域都有重叠。如果两个包围盒在一个坐标轴上的投影不重 叠,则断定两个包围盒必定没有相交。通过投影,即将三维空间中的求交问题转化为一维空 间中的求交问题。在求交计算过程中,只需比较两个包围盒分别在三个轴上投影的重叠情况, 即可得出相交测试结果冋。具体步骤:a、b为两个包围盒,x为投影轴x, x2为包围盒a在投影轴上的两投影端点,x3, x4 为包围盒b在投影轴上的两投影端点,若|xx2|+|x3x4|v|x|x4|,则在轴向x上a和b不相交; 反之,在轴向x上a和b邻接或相交。当包围盒a

35、、b在三条轴向上的投影皆重叠,则a、 b相交。如图42所示:兀广兀2*x34x4*x <(b)有重叠(a)无重叠图4一2 aabb包围盒判交(2)第二步:精确检测直线一三角形(l-t)的碰撞检测该直线一三角形碰撞检测算法原理简单。通过与直线一三角形碰撞检测的结合, 当质点与某一叶子节点包围盒发牛相交时,再应用直线一三角形碰撞检测方法检测该模 型质点与叶子节点中的三角形是否发生碰撞。步骤i如下:a. 质点起始位置为po, t时间步长后位置为pl, p为欲碰撞平而的平而法向量;首先求得popl在p方向的向量长度h (图4-3 a );b. a为平面内任意一点,求出某吋刻apl在p方向的长度h

36、,(图4 3 b );c. 若h' /h在(0,1)之间,则线段popl必定与平面发生碰撞,通过p0 + popl *(1-fpercentage)求出相交点 m (图4 3 c);d若角amc, cmb, bma之和为360度,则相交点m必定在三角形abc内部,由此可判定popl 必定与三角形abc发生碰撞,执行相应的碰撞响应函数。4.2衣片自碰撞检测在服装仿真的过程中,除了衣服与人体之间的碰撞外,由于服装的动态变形,其自身也会发生大量的碰撞现象,因此必须进行进一步的自碰撞检测。4. 2.1自碰撞检测由来与原理织物在不断的运动变形中,自身各部分之间会发生频繁的碰撞。为了检测到自碰撞现

37、彖, 我们釆用provot提出的方法,对自碰撞检测进行优化。这个优化是基于这样的一个性质:如 果某个区域的弯曲率足够小,则在这块区域内不会发生自碰撞现象。位于这个区域内的三角 形就不必做自碰撞检测。这里的弯曲率使用三角形的法向量来计算的,用一个圆锥来包含某 个区域所有的三角形面片的法向量。圆锥的顶角a用来表示此区域的弯曲率,provot的结论 是:如果圆锥的顶角a<n,则这块区域不会发生穿透现象。如图4一4, 4-5所示图44平移织物三角形法向量形成一个圆锥区域图45两个圆锥角al、a2生成圆锥角a在层次包围盒二叉树中,每个叶节点(仅有一个三角形单元)有一个法向量其初值沪0。 假定树的一

38、个节点有两个子节点,那么对应这个节点的锥体a角可由其两个子节点对应得锥 体的aj, a2角和两个子节点对应锥体轴线的夹角b来确定,公式为:(4-1)a=b/2+max(ap a2)4. 2. 2自碰撞检测的算法实现研究动态织物的自碰撞问题时我们利用了碰撞检测问题中的层次包围盒二叉树,在每一 个节点的数据结构总增设一个成员变量alpha来标识其对应圆锥的a角。在构造层次包阖盒二 叉树的吋候,令叶子三角形的a角初始值为0。自下而上遍历二叉树,得到每个节点的a角。 在进行自碰撞检测的过程中,把织物各部分之间的自碰撞检测问题最终归结为前述的织物与 人体的碰撞检测问题。自碰撞检测和碰撞检测方法类似,但其

39、采用计算三角形表面曲率来排除大量不必要的碰 撞检测,当邻近三角形法线夹角较小时,它们不可能发生碰撞,只有当夹角超过阙值时,才 有可能碰撞"j当动态模拟的每一个时间步骤中,一旦检测到服装与人体面片之间有碰撞,就对碰撞对 象施加一定的约束力,从而达到模拟服装的动态行为和最终形态形态的效果,这称之为碰撞 反应。碰撞反应的方向和大小取决于碰撞的弹性系数和表面摩擦系数等屈性,而且由于时间 间隔很短,计算表面摩擦力时不适合应用哥伦布法则。为了减少计算碰撞反应的时间开销, 用一种最简单的计算方法。碰撞被看作是非完全弹性的(质点在碰撞中损失能量),以质点p 接触某个静止坚硬表面为例,发牛碰撞的表面接

40、触点为h, n是表面在h点的单位法向量, 知道和表面法向量n成3角度碰撞,反射角度成b, b=a。质点碰撞后的新速度是v2二(f+1) (vlxn) n+vl, vl是碰撞前的速度,f是摩擦系数,表述了摩擦力行为的特征。如果仁0, 则是一个无摩擦的滑动;如果f是无穷大,则没有滑动。一旦质点的新速度v2被计算出,即 得到了该时间步骤后质点的新位置。如图46所示:图4一6自碰撞检测原理图用同一个算法来实现织物的他碰撞与自碰撞问题。算法实现如下:(伪代码)void self-coll isiondetection(cboundingbox* proot)if (树根 proot>alpha 小

41、于ti)没有碰撞;elseif (树根的左孩子proot->plbox->alpha大于)self-coll isiondetection(proot-plbox);if (树根的右孩子proot->prbox->alpha大于)self-coll ision detection(proot-prbox);if(树根的左孩子proot->plbox->alpha不大于&&树根的右孩子 proot->prbox>alpha 不大于)traversboxtree (proot->plbox, proot->prbox) ;

42、 /调用碰撞检测算法i在以上算法中,若某一个节点的a角大于,但其两个孩子节点的a角小于,可认为 以两个孩子节点为树根的子树可能发牛了碰撞。这种情况下,把两棵子树分别看在两块布的 层次包围盒树,归结为上述的两棵二叉树的双重遍历问题。当织物发生变形后,从叶子节点 自底向上调节aabb树。如果一个节点的a角大于,由公示(4-1)可以确定它的父节点a角必大于口。在这种情况下,只须给父节点的a角赋予一个大于的任意值,从而大大加快 了层次包围盒的更新速度“叫表41碰撞检测算法时间复杂度time stepcomplexityaabb + (l-t)h0(1)4.3实验效果图4. 3. 1未进行碰撞检测衣片在

43、没有进行碰撞检测前,向人体靠近后,会穿透人体。女口图47所示:图4一7未检测碰撞前4. 3. 2碰撞检测后衣片与人体靠近到一定距离内,开始进行碰撞检测。衣片碰到人体后,在肩膀、腋下、腰部等处发生弯曲。如图4一8所示:图4一8碰撞检测后第五章碰撞响应5.1碰撞响应定义当检测到发生了点三角形碰撞后,就需要按照质点的运动规律来纠正碰撞质点的位置和 速度,解决碰撞后的调整问题,使得碰撞后的反应更符合真实的情况,这种处理称之为碰撞 响应19】。5. 2碰撞响应分析针对衣片质点和人体表面发生的位置碰撞,人体表面会对衣片上的质点施加一定作用力 以避免穿透现象的发生。这个作用力的大小、方向均由人体表面的运动状

44、态和衣片质点当前 的运动状态來决定。碰撞响应机制除了要保证衣服表面与人体表面不发生位置冲突,更重要 的是根据人体的运动状态合理改变冲突的衣片质点当前状态,以得到真实的仿真结果我们做出如下假设:(1)碰撞线为碰撞点出的法线,碰撞速度可以不沿着碰撞线的方向;(2)被碰撞的三角形和其他的三角形相连,因此它的有效质量m被认为远远大于碰撞点的 质量m,即m»m.第一个假设保证质点与三角形碰撞时,只改变碰撞线方向的速度;第二个假设(m»m) 则保证在碰撞后,三角形能够保持自己的位置,而不受碰撞的影响。5. 3碰撞响应实现方法以质点p碰撞平面为例:假设质点p以速度v与三角形平面pop i

45、p2碰撞。平面的法向量n。v被分解为垂直于平面的前进速度vl和平行于平面的前进速度v2.则vl = (v-n) -n, v2 =v- vl;由于质点和三角形要相互摩擦,设摩擦系数为f。则有以下2种情况:1. |v2|>=f|vl|,说明质点在三角形平面上作水平摩擦移动,速度衰减为:v'=v2f|vl|u,其 中 u=v2/|v2| o2. |v2|<f.|vl|,说明质点在三角形平面上不会作水平滑动。则v5.4碰撞响应效果图a未滑动b滑动图5-1碰撞响应的两种情况5.5实验效果图图5-2碰撞响应效果图第六章衣片缝合6.1衣片缝合原理通过缝合技术,可以将二维衣片缝合成三维的服

46、装数据描述。当两个衣片缝合质点足够 近时,我们认为己经完成缝合过程,将其处理成一个织物质点。由于缝合后有可能缝合线会与人体模型发生碰撞,进而会产生缝合点(对偶)不能重合 的情况。如果两个缝合点穿透人体模型,那么它在仿真系统中是无法完成缝合的,所以我们 需要对缝合线进行检测。缝合检测算法:首先,取得剖分衣片所有顶点集合。其次,取出衣片顶点集合中缝合点 对偶信息,并将其保存至一集合中。最后,以缝合点对偶(二个端点)形成一个线段,验证 此线段是否与人模相交约。如果相交,则发生碰撞。否则检测通过。线段与人模相交算法可 以归结到线段与三角平而相交(人体模型由n个三角片构成)。6. 2衣片缝合步骤服装衣片

47、缝合的基本步骤如下:(1)衣片初始化在该步骤中,将网格化后的二维服装衣片放置在人体模型附件的初始位置。初始位置并不需 要非常精确,但如果初始位置离最终的缝合位置太远会影响系统的收敛效率,甚至导致缝合 过程失败。(2)动态变形计算根据服装衣片的缝合信息,在衣片的对应缝合边上加载缝合力,在缝合力的作用下,衣片逐 渐变形,并缝合到一起。整个缝合过程是一个动态的迭代过程,在满足以下两个条件吋,终 止迭代过程:(a)所有缝合点之间的距离均小于给定的缝合距离;(b)在相邻的两次迭代过程中,系统中的每一个粒子的位移量小于给定的误差。条件(a)保证所有的衣片均处于缝合状态;条件(b)保证衣片处于最终的平衡状态

48、。缝合过程结束后,便可得到缝合后的形状。如图6-1所75:缝合点fpl>p2lpl->p2衣片1衣片2图6-1衣片缝合受力分析6. 3衣片缝合的算法实现在服装衣片的虚拟缝合中,为了将不同的衣片缝合在一起,需要在衣片的缝合边上加载 缝合力。在系统中,缝合力被定义为对应缝合点之间距离的线性函数。对两个缝合点pl, p2, 缝合力可以按如下公式计算:缝合力f二"xi,其屮k为缝合力系数,该系数与织物的缝合 性能有关,通常较难变形的织物采用较大的缝合力系数;i表示从缝合点p2指向pl的方向 矢量,如图6-1所示el。缝合点距离越近,缝合力越小;由公式:fp->p2=_k*i

49、pi->p2(6 1)保证了 pl点缝合力的指向,由公式:fp->p2= fp2->pi(62)构造了模拟缝合时粒子运动所需的各种力及表达式,考察缝合边上的粒子空间几何状态向量 可以由下列公式描述:”,.£1+柑噪维合力(6-3)通过此公式以及数值积分方法,给定合适的时间不长,整个衣片开始变形,完成虚拟缝 合效果约。6.4实验效果图图6-2衣片缝合过程第七章总结与展望7. 1总结本论文详细阐述了碰撞检测及响应的具体过程,以及后期的衣片缝合过程。碰撞检测及 响应主要作用在于计算机模拟现实的三维物体,并且根据物体的不可穿透性来进行碰撞检测, 使得计算机内部的虚拟环境模拟

50、四维时空。衣片的缝合有区别于单纯的二维贴图,它和碰撞 检测一样要达到模拟现实的效果。项目试验碰撞检测及响应和衣片缝合是三维服装试衣系统 屮的关键步骤,所采用的技术、算法较为复杂,时间复杂度大。本文根据这些步骤一步步细 化,并具体实现。目前项目已经结束,基本能够实现虚拟现实效果,但还存在一些不足之处:1. 衣片样式粗糙,不太符合现实生活中的衣服;2. 纹理比较单调,不富于变化;3 界而还需改进为更人性化;4.衣片与人体碰撞检测速度慢。前三个不足需要我们花更多的吋间精力来完善,最后一个也是最关键的一个,需要我们 对碰撞检测的算法继续努力钻研,从更多的实验中来获取经验,优化算法,减小时间复杂度, 提

51、咼运行速率。7.2展望三维服装试衣系统适应目前市场需求,有强大的潜在发展前景。若国内出现这样一个成 熟的软件,其吸引的消费群体是庞大的,能够创造巨额利润。三维服装试衣系统功能强大, 涉及的技术领域广。随着计算机的高速发展,系统所需要的存储空间、运行速度等都将不成 问题。我们需要做的就是完善此系统,界面更加方便消费者的使用,并且关注服装业中的流 行趋势,实时更新系统中的服装种类,以吸引更多的消费者。致谢敲下毕业论文的最后一个字,高兴之余,有无限的感激之情要表达。感谢我的导师一一副教授。首先他对我们的严格要求,无论是在学术上,还是在道德修 养上,都为我们指明了正确的方向;其次每周一次的会议,姚老师

52、认真倾听我们的汇报,优 秀之处用赞扬的话语鼓励我们,不足之处及吋指出和指导我们改正,并激励我们克服困难。 最后是老师的慷慨无私和对学牛的关心,为我们提供的良好的实验室环境及其他条件。还要感谢陈青青学姐和蔡永峰、梅琳、汤莆等同学。陈青青学姐总是在我遇到困难时第 一个帮助鼓励我的人,她的良好的自律性和编程能力是我学习的榜样。蔡永峰、梅琳、汤蕾 等同学是我们这个项目小组的其他成员,是一起研究算法,一起克服困难的战友。如果没有 他们,毕设的路程将更加艰辛。这段日子因为有了他们的并肩作战,学习生活中伴着欢笑而 成长。最后要感谢我的父母亲一一翁学堂、李丽珠。他们在我的大学四年里,默默的为我付出 了很多心血

53、。没有了父母亲的殷切期望,也就没有了前进的动力。正是因为他们一路上的鼓 励与支持,我才能走到今天。参考文献1王湛.基于虚拟现实的三维服装展示d.北京服装学院,2006. 马良,张渭源服装衣片三角形网格自动剖分j冻华大学学报,2002,28:4859.李笑牛,赵伟六面体有限元网格生成方法综述j.大连民族学院学报,2003,5(3):15.4 惠卫华,关正西.基于质点_弹簧模型的布料仿真研究j.计算机工程与设计,2007,28(3):664667.5 s paquette.3d scanning in apparel design and human engineeringfj.ieee comp

54、uter graphics and applications,! 996,16(5): 11 17.李井辉,申静波.基于包围盒的碰撞检测技术研究j.高校实验室工作研究,2006,90:3135.17j高玉琴,何云峰,于俊清.改进的基于aabb包围盒的碰撞检测算法j.计算机工程与设 计,2007,28(16):38153819.8 刘卉,陈纯漩伯乐.基于改进的弹簧-质点模型的三维服装模拟j.软件学报,2003,14:619626.9 王立文,刘璧瑶,韩俊伟.基于包围盒的碰撞检测算法j.中国氏航大学学报,2007,25(4): 1619.10 高明向,陈昆,陈定方.射线算法在碰撞检测中的应用j.湖

55、北工学院学报,2004,19(3):949&hu闫燕,史建红,葛焰明.动态织物仿真与碰撞响应算法j.工程图学学报,2002,4:4048.12 向静.织物悬垂模拟与服装虚拟缝合技术d.东华大学,2002.13 pascal volino and nadia magnenat thalmann.developing simulation techniques for an interactive clothingsystem .miralab, university of geneva switzerland. 1998,5(2):315.14 唐明浩,何洁,张祖芳等.基于立体裁剪知识的虚拟衣片缝合技术j.纺织学报,2004,25:9197.15 zhang minglie,hou dongyu,zhou aiying. three-dimensional simulation and pattern making of collar usinggeome

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论