2018虚拟穿衣中织物模型的建立和碰撞检测的处理
摘 要:结合实现静态虚拟穿衣中的实际问题,详细地介绍了基于弹簧质点模型的织物变形模型和基于AABB层次包围盒的碰撞检测算法。借助层次空间分解法的思想,将缝合衣片的相对位置同人模自身的结构信息相结合,灵活地构造人模AABB树,减少了不相交元素的碰撞检测次数,从而提高了算法的效率。最后还给出了实现整个虚拟穿衣过程的具体步骤。关键词:织物变形仿真;弹簧质点模型;碰撞检测;空间分解法;层次包围盒法;显式欧拉方法1 前言随着计算机技术和人类社会经济的发展,对于纺织服装业CAD/CAM的应用要求也越来越高,二维服装CAD系统已经不能满足要求,人们迫切希望借助计算机完成一些更加实用的三维功能。若能直接将二维服装CAD系统设计的衣片,在计算机上真实地模拟出穿在人体上的效果,便可以帮助设计师直接在计算机上进行着装效果检查、服装裁剪片缝合检查等工作。这样就可大大提高服装从设计阶段到生产阶段间的效率,具有非常重要的实用价值。要通过计算机实现这一功能,有两个关键的问题必须解决:1)建立合适的织物变形模型;2)选择高效而实用的碰撞检测算法。
研究织物变形仿真的方法通常分为三类:几何的、物理的和混合的(几何和物理方法的混合)。纯几何的造型方法很难反映织物的物理特性,因此基于物理的方法研究,近年来已占据了主导地位。在织物变形物理仿真模型中,按比拟织物结构的方式又可分为两大类:1)离散质点型模型:比较典型的有Feynma等建立的质点网格模型、Breen等建立的粒子模型和XProvot等建立的弹簧质点模型;2)连续介质型模型:比较典型的有Terzopoulos等建立的弹性变型模型、Liling等建立的空气动力模型、Aono建立的波传播模型、Collier等建立的有限元模型等。
以上的织物变形物理仿真模型,由于其建模的原理和方法不尽相同,因此,它们适用于不同的应用场合有其各自的优缺点。
我们结合设计虚拟穿衣功能的实际,认为XProvot所建立的弹簧质点模型,模型简单,易于计算机实现,在模拟衣片复杂的动态变形过程时,能够取得比较真实的模拟效果和较快的模拟速度。
在模拟三维服装穿在人体上的真实效果时,会遇到大量的碰撞现象:衣片同人模之间以及衣片自身间的一种相互渗透和穿越。只有很好地解决了渗透和穿越的问题,才能逼真地完成虚拟穿衣的模拟过程。因此,碰撞检测是整个模拟过程的关键。碰撞检测非常耗时,最简单的碰撞检测算法是对两个碰撞体中的所有基本几何元素(通常为三角形)进行两两相交测试。
现有的碰撞检测算法大致可划分为两大类:空间分解法(spacedecomposition),和层次包围盒法(hierarchicalboundingvolumes)。前者是将整个虚拟空间划分成相等体积的小单元格,只对占据同一单元格或相邻单元格的几何对象进行相交测试。比较典型的方法有八叉树和BSP树。层次包围盒法的核心思想是利用体积略大而几何特性简单的包围盒将复杂几何对象包裹起来,在进行碰撞检测时,首先进行包围盒之间相交测试,只有包围盒相交时,才对其所包裹的对象,做进一步求交计算。在构造碰撞体的包围盒时,若引入树状层次结构,可快速剔除不发生碰撞的元素,减少大量不必要的相交测试,从而提高碰撞检测效率。比较典型的包围盒类型有沿坐标轴的包围盒AABB(axisalignedboundingboxes),包围球(sphere),方向包围盒OBB(orientedboundingbox)等。
在本文中,我们充分利用了AABB层次包围盒法的优势,同时在构建静态人模的AABB树时,又借助层次空间分解法中子空间在空间排列上的有序性和相关性的思想,将缝合衣片的相对位置同人模自身的结构信息相结合,灵活地构造人模AABB树,这样减少了需相交测试的元素,从而提高了碰撞检测的效率。
2 织物的变形模型
2.1 织物变形模型的描述
我们建立的织物变形模型是以XProvot的弹簧质点模型作为基础,将织物设想为一个个质点集合,质点间相互关系归结为质点间的弹簧作用。其中弹簧分为三类:结构弹簧、剪切弹簧和弯曲弹簧,具体构成如图1所示。图1 织物模型离散成规则网格
1)结构弹簧:在质点Pij和Pi+1,j间,以及Pij和Pi,j+1间的弹簧为结构弹簧,结构弹簧是为了保持质点间初始状态时的距离。
页:
[1]