一种计算机中人体服装动态仿真实现方法

xiaoxiao2020-10-23  13

一种计算机中人体服装动态仿真实现方法
【技术领域】
[0001] 本发明设及计算机图形学技术领域,尤其设及到计算机服装仿真技术领域的计算 机中人体服装动态仿真实现方法。
【背景技术】
[0002] 虚拟试衣是当今虚拟现实领域的热点问题,相关技术被应用到诸多领域,如网络 购物、CG电影、3D游戏、S维动画等。网络购衣无疑是虚拟试衣应用最重要的领域,该一新 兴技术为广大消费者带来了巨大便利,具有节约成本,节约时间,选择更加多样化等优势。
[0003] 目前基于物理的仿真方法是动态服装仿真的主流,因为该种方法可W取得较好的 视觉效果,并且能够满足试衣系统的实时性要求,另外,较之几何仿真方法,灵活性较强,更 适合动态试穿仿真。然而,随着用户对视觉感受需求的提高,试穿仿真不仅需要满足实时性 和一定的真实性,还需要具备多样性,多样性包括服装造型、材质的多样性和人体体型、动 作的多样性。
[0004] 在不同体型、动作的人体上试穿,机器学习的方法是当前非常热口的方法,如文献 1 :GUAN,P.,REISS,L.,HIRS皿ERG,D.A.,WEISS,A.ANDBLACK,M.J. 2012.Drape:Dressing anyperson.ACMTransactionsonGraphics(TOG) 31, 35 中的方法。该方法的一个关键部 分就是被称为DRAPE(DRessingAnyPErson)的衣服模型,是由通过学习具有特定体型和姿 势人体上的服装模型得到的。首先把基本物理模拟方法产生的衣物穿在具有不同体型和姿 势的人体训练集上进行学习;然后由DRA阳产生刚性姿态,姿态无关性是体型变化W及姿 态有关的權皱形变,该里需要利用SCAPE模型来表示不同姿态上不同形状的人体。给出一 个输入的人体,则按照人体姿势和体型会产生一个合适的服装配置。衣服的拟合处理消除 了衣服与人体相互渗透而创造出了逼真的动画,实现多样化的试穿仿真。实验结果表明该 方法适用于场景中包含很多人体并且每个人体可能体型姿势各异,在该种情况下可W快速 实现穿衣。但由于对每个姿势都需要训练,因此更适合静态展示,不适合于动态模拟。
[0005] 实现不同服装材质的方法有两种,即基于几何的和基于物理的,文献 2:FENG,W.,YU,Y. ,KIM,B.Adeformationtransformerforreal-timecloth animation[C].In:ProceedingsofSpecialInterestGroupforComputerGraphicsand InteractiveTechniques.Asia:ACMPress29, 4,Article108(July2010)中提出 了在实 时布料动画中通过数据驱动模型w实现權皱效果。具体是使用数据驱动模型将低分辨率低 质量的服装模拟转换成高分辨率的模拟。衣服模型的动力学特征由低分辨率的基于物理的 模拟表示,而衣服表面的高分辨率空间特性(權皱)由从低维得来的数据驱动模型产生,该 数据驱动模型是通过从衣服模型中提取的旋转不变量来训练获得的,因而是独立于所选取 的低分辨率模型的模拟技术。通过低频布料的单步模拟、变形转换和碰撞检测、高频布料表 面重构和擅染实现布料动画,变形转换包括两个非线性映射,分别负责产生中等尺度和精 细尺度的形变。该方法由于旋转不变量独立于模型,模拟耗时较少,能够用低分辨率模拟的 时间实现高分辨率模拟的效果。不足之处是预处理时间长,另外如果衣服嵌入人体,也会直 接影响到最终的实验结果。
[0006] 文献 3:WANG,H.,0'BRIEN,J.F.ANDRAMAM00RTHI,R. 2011.Data-driven elasticmodelsforcloth:modelingandmeasurement.ACMTransactionson Graphics(TOG) 30, 71介绍了一种基于物理的试穿仿真方法,首先文中指出布料具有非线性 特征,因此使用分段线性弹黃W近似非线性,其次提出在传统质点弹黃模型的基础上增加 更多方向的弹黃W更加充分地考虑布料的各向异性特点,同时对不同的弹黃做合理的参数 设置W实现材质区分。建模过程中使用了 24个拉伸参数和15个弯曲参数。数据库中包含 10种材质的样本。不同材质的参数数值是通过实际测量材质的物理属性得到的。该一方法 真实性较高,但是由于其耗时较多不适合于较复杂布料,另外,每一种材质都需要测量非常 多的参数,因此在一定程度上限制了该方法的扩展性。
[0007] 综上,现有方法的缺点主要有;文献1中人体模型的体型改变缺少灵活性,建成人 体难W完成连续动作;文献2中基于几何的材质实现方法不利于动态效果的实现,文献3虽 是基于物理的材质实现,但增加了过多参数,直接影响试衣系统效率,对于较复杂服装模型 的仿真会欠缺实时性。

【发明内容】

[000引发明目的;本发明的目的是针对W上技术问题,提供一种使得人体模型更加易于 改变的计算机中人体上的服装动态仿真实现方法。
[0009] 为了解决上述技术问题,本发明公开了一种计算机中人体服装动态仿真实现方 法,包括如下步骤:
[0010] 步骤1,参数化人体建模:使用插值样条曲面对人体的各个部位分别建立曲面 模型并进行光顺拼接,建立完整的人体网格模型,参数化建模方法无需获得人体表面的 全部信息,只需根据获取的特征点和特征尺寸,求出型值点,使用文献4 ;化angR-J,Ma W.Anefficientschemeforcurveandsurfaceconstructionbasedonasetof interpolatorybasisfunctions.ACMTransactionsonGraphics2011 提出的插值样条 曲面对各个部位的人体分别建立曲面模型并进行光顺拼接,就能建立完整的人体模型;
[0011] 步骤2,载入服装模型,对服装模型和人体网格模型进行预处理;
[0012] 步骤3,对服装模型构建质点-弹黃模型,进行仿真动画计算;
[0013] 步骤4,对质点-弹黃模型进行积分后校正;
[0014] 步骤5,对服装模型和人体网格模型进行碰撞检测和响应。
[001引其中,步骤1包括如下步骤;
[0016] 步骤1-1,获取人体表面的特征点和特征尺寸;
[0017] 步骤1-2,根据获取的特征点和特征尺寸,W特征点为基准,根据特征尺寸和一定 的比例关系(比例关系因人而异),如已知左膝特征点和小腿围该一特征尺寸,W特征点 为中屯、,小腿围乘W-定的比例作为半径,即可求出周围一圈型值点,此处比例根据需要改 变,因此该圈型值点不是规则圆形,通过该种方法求出每圈型值点,从而可得所有表面型值 点,文献5:陈森.参数化S维人体建模与系统实现巧].南京大学,2014对型值点做了详 细介绍;
[0018] 步骤1-3,对人体部位进行分块表面重建,采用插值样条曲面建立每个分块部位的 曲面构成曲面模型,获得人体部位生成点的法向量,曲面模型较之实体模型和线框模型,可W兼顾真实性和效率;
[0019] 步骤1-4,对各个人体分块部位的曲面进行光顺拼接;
[0020] 步骤1-5,加入法向量、根据设置的环境光参数模拟光照W显示人体模型;
[0021] 步骤1-6,通过改变骨架点坐标W驱动人体动作实现人体动画,通过改变特征尺寸 实现人体体型的改变,骨架点是特征点中人体每个部位接合处的点,是与运动相关的,如膝 盖点,而有些特征点如乳高则不是骨架点。
[0022] 对于每个人体部位,步骤1-3包括如下步骤:
[002引步骤1-3-1,将该部位分层,每层都是一条闭合曲线,由于使用插值样条建模,因此 曲线通过控制点,可W得到每层曲线的控制点,形成该部位的控制点矩阵,控制点可W方便 地控制曲线形状;
[0024]步骤1-3-2,求取插值样条曲线的一组基函数,公式如下;
[00巧]
[0026] 其中X是曲线所在局部坐标系的横坐标,e是自然对数的底数,a是一个大于零的 常数,从误差角度W及最终生成曲线(曲面)的圆滑程度考虑,通常选择《€ [^,^]。插值样条 曲线(曲面)中改变任何一个型值点,对曲线形状的影响限制在局部作用域中,且能保证最 终生成的曲线(曲面)精确通过每一个型值点。插值样条曲面的计算公式为:
[0027]
[0028] 其中。0是提到的插值样条曲线的一组基函数。(X,a),参见文献4,u,v分别 是水平面平行方向和人体竖直方向上的坐标,i和j是控制点的序号,取值范围为i= 0, 1,…,m-1,j= 0, 1,…,n-1,m、n分别表示两个方向上控制点的个数,Pi,j为一控制点的 坐标,Amxn=(Pij)mxn是控制点矩阵;
[0029] 步骤1-3-3,控制点矩阵中的一个元素即为控制点的坐标,将该坐标与一组基函数 的值代入插值样条曲面表达式中,通过调整参数方程中U,V的变化率,求得该人体部位表 面任意一个表面点的坐标,表面点坐标用于与服装质点进行碰撞检测;
[0030] 步骤1-3-4,对该人体部位生成的表面点进行=角网格化得到人体模型的=角面 片,并计算各点法向量。
[0031] 步骤1-4包括;通过重复型值点法实现插值样条曲面的光顺拼 接:
[0032] 对于一段曲线的光顺拼接,在一段曲线的首尾接合处各重复两个型值点作为辅助 控制点从而实现该段曲线的光顺拼接;对于两段首尾接合的曲线的光顺拼接,则在两条曲 线接合处各增加两个辅助控制点,辅助控制点选取与首尾接合处几何距离最近的型值点;
[0033] 对于一块曲面的光顺拼接,通过W下步骤实现在u方向上的首尾光顺拼接;在曲 面片U方向首尾各重复两层V方向的型值点作为辅助控制点,将辅助控制点矩阵代入插值 样条曲面计算公式;对于有公共交点的不同曲面片的光顺拼接,则取与曲面片交接线的所 有点间平均几何距离最近的两层点作为辅助控制点。
[0034] 相对于基于点云重建人体模型的方法,该种建模方法效率更高且具有更高的灵活 性,参为更加方便地控制和改变人体提供了可能,通过特征尺寸的改变可W改变体型,而通 过特征点的位置改变可W快捷地实现人体动画效果。
[0035] 步骤2包括如下步骤:
[0036] 步骤2-1,载入3血ax服装模型,对服装模型建立邻接表W确立服装模型中点、边、 面之间的关系,邻接表中的边结构也是构造质点弹黃模型的基础;
[0037] 步骤2-2,对建立好的人体网格模型进行预处理,建立有向包围盒的riented BoundingBox,简称0BB,有向包围盒);
[0038] 步骤2-3,建立扩张人体模型;对人体网格点向外扩张,扩张点是将人体表面网格 点沿着其向外的法向量移动一定距离获得,所有扩张点会构成比原模型略大的扩张虚拟人 体模型,对每个人体部位构建圆柱映射表,W便在接下来的仿真中确定服装质点对应的圆 柱映射表,从而缩小碰撞疑似区域。
[0039] 步骤3包括如下步骤:
[0040] 步骤3-1,对服装模型构造质点-弹黃模型,质点-弹黃模型中的拉伸弹黃由横向 和纵向相邻的点表示,弯曲弹黃由相间的点表示,大弯曲弹黃由服装模型简化后相邻的质 点表示,简化方法是将=角形缩减到=角形的一个顶点,得到简化顶点,并对简化顶点之间 构造=角网格,得到简化服装模型。根据不同的材质,对弹黃设置不同参数,棉质服装的拉 伸和剪切弹黃设置较大的弹性系数(200~300)、阻巧系数(40~60),并对大弯曲弹黃设 置较大的弹性系数(100~150)和阻巧系数(20~30),W实现一定硬度的權皱效果。丝 质服装的拉伸和剪切弹黃设置较大的弹性系数巧00~600)、较小的阻巧系数(1~2),弹 性服装的拉伸和剪切弹黃设置较小的弹性系数(30~40)、中等的阻巧系数(4~10)。拉 伸、弯曲和剪切弹黃设置弹黃最大伸长率W避免产生超弹性,棉质和丝质的最大伸长率较 小(0. 001~0. 002),弹性质地的最大伸长率较大化05~0. 1),大弯曲弹黃设置弹黃原长 (0. 9~0. 95),并根据材质不同设置不同的碰撞响应系数、静摩擦系数和动摩擦系数,棉质 和弹性的摩擦系数较大(分别为0. 3和0. 15),丝质的摩擦系数较小化05),棉质材质密度 较大,因此碰撞响应系数较大(2. 0~4. 0),丝质和弹性的碰撞响应系数较小(1. 2~1. 5);
[0041] 步骤3-2,将服装和人体进行对齐:通过设置上衣领口位置和人体颈部位置的对 应关系或是裤子腰带位置和人体腰部位置的对应关系实现服装和人体的对齐,对齐后根据 服装质点的位置对其进行区域划分,W确定所属的人体分块部位;
[0042] 步骤3-3,根据步骤3-1提到的与力相关的参数设置,计算服装质点所受内力和外 力,并对服装质点讲行数値巧分计算,值用韦尔菜Verlet积分法构造线性方程组,Verlet 积分推导如下:
[0043] 对于服装质点在下一个积分步长的位置Sw和服装质点在上一个积分步长的位置 Sw,使用泰勒公式:
[0044]
[0045] S。表示服装质点在当前积分步长的位置,公式(a)加上公式化),变形得到下一时 间步长的位置表达式:
[0046] 8。+1 = 2S n-Sn-1+at A t2+0 ( A t]),
[0047] 计算当前时间步长的速度V。;
[004引Vn= (Sn+rSn-i)/(2At)+0(At2),
[0049] 其中,At为积分步长,每个积分步长相当于仿真中的一帖,at为服装质点当前的 加速度,0为泰勒公式的余项,其中,加速度与服装质点当前所受合力有关,加速度与服装质 点所受合力的关系如下:
[0050] a^= F Jm
[0051] 其中,Ft是当前质点所受合力,m是质点质量,合力包括内力和外力,外力如重力, 内力包括弹力和阻巧力,弹力Fspdng和阻巧力F的计算分别如下:
[0052] , /
[005引其中,ks为拉伸常量,^为弹黃两端点即两个服装质点之间的距离,L"w。为弹 黃原长,即构造弹黃模型时服装质点间的初始距离,
[0054]
[0055] 其中,kd为阻巧常量,;为服装质点速度。
[0056] 计算出的下一时间步长位置,并根据当前速度和加速度计算下一时间步长速度, 修改质点的位置和速度信息,重复步骤3-3,直至当前服装质点与人体发生碰撞则停止对质 点的积分计算,对所有的质点采用相同的处理方法,从而实现仿真。
[0057] 步骤4包括如下步骤:
[0058] 对质点-弹黃模型进行校正;在每个积分步长结束后,可能会出现弹黃过度拉伸 或压缩,从而出现超弹性现象,为避免该一现象,需要对弹黃进行校正,过伸长和过压缩的 弹黃都需要校正,校正分为两类,第一类,对拉伸、剪切和普通弯曲弹黃根据调整策略将非 固定点进行基于位置校正,且引入调整优先级W减少调整轮数,轮数校正如下;每一个服装 质点都设置优先级,弹黃每被修改一次,该弹黃端点的优先级减1,若两端点优先级不同,贝U 修正优先级高的端点,若两端点优先级相同,则计算两端点相对速度,如果相对速度大于0, 则校正下端点;若相对速度为0,则同时校正;若相对速度小于0,则校正上端点,校正公式 为:
[0059]
[0060] 其中,民w为校正向量,^和^分别为弹黃校正前两端服装质点的位置,LmJ%弹 黃最大长度,
[0061] 校正后的服装质点目标位置如下:
[0062]
[006引其中,Sw和Sw分别是弹黃两端质点的初始位置坐标,而S'W和S'W分别是弹 黃两端质点校正后的坐标,nii和mj.分别为弹黃两端质点质量。
[0064] 第二类,对大弯曲弹黃同时使用基于位置和基于速度校正,基于位置校正即上述 校正公式的校正方法,基于速度校正是将沿弹黃伸长或压缩方向的服装质点速度分量置 为0,引入基于速度校正的主要目的是使得弹黃快速进入稳定状态,W实现一定硬度權皱效 果。
[0065] 步骤5包括如下步骤:
[0066] 步骤5-1,检测服装质点与人体0BB包围盒,由于人体每个部位都在相应0BB内部, 若服装质点在0BB外,则一定不会与人体该部位发生碰撞,由此排除一部分不可能与人体 表面碰撞的质点;
[0067] 步骤5-2,根据动态位置划分确定服装质点所处的人体部位,具体是根据质点当前 的位置坐标,与人体各部位接合处的坐标值进行比较,W确定质点所属人体部位。根据该人 体部位的圆柱映射表,确定服装质点属于该人体部位的人体分块部位;
[0068] 步骤5-3,将服装模型与扩张人体模型进行碰撞检测,即只进行服装质点和扩张人 体模型=角面片的碰撞:
[0069] 步骤5-4,当人体产生运动时,返回步骤5-2,对服装模型位置进行重新划分,W确 定新的对应关系,从而通过碰撞处理的方式实现从动。该种由外至内多步骤的检测方法可 W在预检测中将可能与服装某质点碰撞的人体区域范围尽可能缩小,从而大大提高检测效 率。碰撞响应过程将检测为碰撞的服装质点按照一定的算法修正至人体外部,若发生运 动还需要给该质点一个碰撞响应力,将该质点沿着碰撞S角面片法向量方向的速度分量清 零。根据碰撞响应力和摩擦系数,计算质点所受摩擦力,将摩擦力加入下一积分步长的模拟 中。
[0070] 本发明通过物理参数和关键步骤的改进W区分服装材质,完全使用物理方法获取 仿真效果,并在预处理、校正和碰撞检测时使用多种加速手段,W在保证真实感的同时,尽 量提升系统计算效率,保证动态仿真的实时性。
[0071] 有益效果;
[0072] 1)基于插值样条曲面建立的人体模型其表面凹凸性较好,易于精细地表现人体, 而结合参数参数化分块建模的方法,人体的造型取决于获取的若干特征点和特征参数,使 得人体模型更易于改变。另外,对人体进行的多重预处理大大提高了试穿过程的效率。
[0073] 2)对传统质点-弹黃模型进行改进,提出大弯曲弹黃W产生權皱,大弯曲弹黃的 引入主要是为了得到一定硬度材质的效果,如实现棉质服装材质的仿真。在不大量增加参 数的基础上,使用物理方法即可快速实现材质区分。避免了传统材质实现方法参数过多、灵 活性不足的缺陷。
[0074] 3)对试穿仿真的各个步骤提出改进方案,能够获得稳定的仿真结果。系统流程能 够满足不同体型的人体和不同款式的衣服,使得衣物与人体的试穿呈现多样化。
【附图说明】
[0075] 下面结合附图和【具体实施方式】对本发明做更进一步的具体说 明,本发明的上述和 /或其他方面的优点将会变得更加清楚。
[0076] 图1是本发明的整体步骤图。
[0077] 图2是本发明的人体建模流程图。
[0078] 图3是本发明的弹黃构造过程。
[0079] 图4是本发明的试穿仿真流程图。
【具体实施方式】
[0080] 本发明的方法可分为五大步骤,如图1所示,包括1参数化人体建模,2服装和人体 模型预处理,3服装仿真动画实现,4积分后校正,5碰撞检测和响应。
[0081] 本发明的具体步骤如下:
[0082] 1)参数化人体建模
[0083] 如图2所示,
[0084] a、获取人体表面的特征点和特征尺寸,具体获取方式可通过深度摄像头或手工设 定
[0085] b、对获取的数据进行预处理;
[0086] C、每个人体部位通过分层建立表面网格,因此需要计算分层截面的型值点;
[0087] t对人体进行分块表面重建,对每块部位曲面采用文献4提到的插值样条曲面建 立,基于插值样条分块建模的大体步骤如下:
[0088] d-1,计算人体躯干各层控制点,形成人体躯干控制点矩阵;
[0089] d-2,求取插值样条曲面的一组基函数;
[0090] d-3,将控制点坐标与一组基函数的值代入插值样条曲面表达式中,可通过调整参 数方程中U,V的变化率,求得人体表面任意个数点的坐标;
[0091] d-4,对躯干生成点进行=角网格化,并计算各点法向量,方便后续光照条件下观 察人体。
[0092] e、使用插值样条曲面建立完每个部位的人体后,对各个人体分块曲面进行光顺拼 接,使用"重复型值点"的方法W实现该部位的光顺拼接,即若要对一块曲面片U方向首尾 光顺拼接,则需在U方向首尾各重复两层V方向的型值点作为辅助控制点作为控制点矩阵 代入插值样条曲面计算公式。
[0093] f、加入法向量、光照信息显示人体模型
[0094] g、人体动画的实现通过改变骨架点坐标W驱动人体动作改变,人体体型的改变通 过改变特征尺寸实现。
[0095] 2)服装和人体模型预处理
[0096] 如图4的人体模型构造部分所示,在建立人体网格模型后,对人体建立有向包围 盒(简称0BB)和圆柱映射表W加速随后的碰撞检测过程。具体过程是对人体的每个部位 先建立局部坐标系,根据局部坐标系建立轴对齐围盒(简称AABB),并将包围盒顶点坐标转 换为全局坐标,即可得0BB的顶点坐标。建立扩张人体模型,对人体质点向外扩张一定的距 离,产生虚拟人体,可W避免人体网格边和服装网格边W及人体点和服装=角面片的碰撞 检测,而只进行人体面片和服装质点的碰撞检测。圆柱映射表的建立可W缩小服装模型对 应的可能发生碰撞的位置。
[0097] 如图4的衣服模型构造部分所示,需要对服装模型质点进行简化,W加速其后的 碰撞检测过程,使用文献4: ISLER V.,LAU R.W.H., GREEN M.. Real-time multi-resolution modeling for complex virtual environments[C]. In:Proceeding of the VRST' 96. 化n巧ong,1996:11~19的方法,选取S角面片上的一个顶点作为该S角形折叠后的点,该 种点设置方法避免了计算新顶点的复杂过程,减少了时间消耗。接着对服装模型建立邻接 表W存储点、边和S角面信息及其相互之间的关系,且有利于接下来质点弹黃模型的构造。 [009引3)服装仿真动画计算
[0099] 对服装构造质点-弹黃模型,质点-弹黃模型中的拉伸弹黃由横向和纵向相邻的 点表示,弯曲弹黃由相间的点表示,大弯曲弹黃由服装模型简化后相邻的质点表示,如图3。 对弹黃设置参数,不同的弹黃设置不同的弹性系数、阻巧系数。拉伸、弯曲和剪切弹黃设置 弹黃最大伸长率,大弯曲弹黃设置弹黃原长。并根据材质不同设置不同的碰撞响应系数、静 摩擦系数和动摩擦系数。接着需要对服装和人体进行大致对齐,如图4的试穿仿真部分所 示,对齐的方法是通过设置上衣领口位置和人体颈部位置的对应关系或是裤子腰带位置和 人体腰部位置的对应关系实现,大致对齐后根据服装质点的位置对其进行区域划分,W确 定所属的人体分块。然后,需要根据参数设置,计算质点所受内力和外力,并对质点进行数 值积分计算,由于Verlet积分可W兼顾稳定性和效率,因此使用Verlet积分法构造线性方 程组,Verlet积分推导如下,可根据当前位置和上一时间步长的位置,得到下一时间步长质 点的位置,然后由该位置求得当前速度,由此得下一时间步长的速度值:
[0100] 对于Sw和8。_1,使用泰勒公式;
[0101]
[0102] (a)+化),变形可得位置表达式:
[0103] Sw=2Sn-Sn-i+atAt2+0(At3) (1)
[0104] ((a)-(b)) / (2At)可得速度表达式:
[010引Vn=(Sn+rSn-i)/(2At)+0(At2)似
[0106]其中,At为积分步长,积分步长的设置需考虑综合系统的稳定性和效率,可选值 在0. 02s~0. 05s之间,每个积分步长是相当于仿真中的一帖,5。_1、5。和8。+1分别为服装质 点在上一个、当前和下一个积分步长的位置,此处下一积分步长的位置可能因为积分后校 正而修改。a,为当前的加速度,与质点当前所受合力有关,需要考虑弹黃内力,包括弹力和 阻巧力,弹力和阻巧力的分别见公式(3)和(4),W及质点所受外力,主要是重力,也可能有 摩擦力和碰撞响应力。V。是当前速度,下一步速度可由当前速度和加速度获得。
[0107]
[010引其中,ks为拉伸常量,该常量与弹黃本身性质有关,^为弹黃两端点即两个服装 质点之间的距离,L"w。为弹黃原长,即构造弹黃时质点间的初始距离。
[0109]
[0110] 其中,kd为阻巧常量,该常量与弹黃本身的性质有关,;为质点速度。
[0111] 4)积分后校正
[0112] 如图4中所示,每个积分步长结束后,为避免超弹性现象,需要对弹黃进行校正, 过伸长和过压缩的弹黃都需要校正。对拉伸、剪切和普通弯曲弹黃采用改进的基于位置校 正,即根据一定调整策略将非固定点进行位置调整,且引入调整优先级W减少调整轮数。轮 数校正如下;每一个质点都设置优先级,弹黃每被修改一次,该弹黃端点的优先级减1。若 两端点优先级不同,则修正优先级高的端点。若两端点优先级相同,则需计算两端点相对速 度,如果在相对速度方向在弹黃伸长方向(〉0),则校正下端点;若相对速度为0,则同时校 正;若相对速度<0,则校正上端点。校正公式为:
[011 引
[0114] 其中,民。"为校正向量,;^和^分别为弹黃校正前两端质点的位置,1。。为弹黃最 大长度。
[0115] 校正后的质点目标位置如下:
[0116]
[0117] 对大弯曲弹黃同时使用基于位置和基于速度校正,将沿弹黃伸长或压缩方向的质 点速度分量置为0,引入速度校正的主要目的是使得弹黃快速进入稳定状态,W实现一定硬 度權皱效果。
[011引 5)碰撞检测和响应
[0119]a、第一轮:服装简化质点的碰撞检测,对人体的每个部分建立0BB包围盒,碰撞检 测过程中,服装质点首先与OBB包围盒进行检测,可排除一部分不可能与人体表面碰撞的 质点。
[0120] b、根据动态位置划分可W确定服装质点位于人体的具体部位,其后根据该部位的 圆柱映射表,确定服装质点属于该部位的哪个小块。
[0121] C、使用距离场方法对人体网格点向外扩张,产生虚拟的人体模型,称为扩张人体 模型,服装与人体进行碰撞检测时,只需与扩张人体模型进行碰撞检测,该方法可W只进行 衣服质点和人体模型S角面片的碰撞,即"点-S角形"碰撞,从而避免了 "边-边"碰撞和 角形-点"碰撞。该一步检测的主要是服装质点和其所在圆柱映射表小块中的人体S角 面片的碰撞情况。
[0122] 对于检测为碰撞的质点P,首先将P投影至所属部位的中轴,例如P与人体躯干部 分发生碰撞,则求得其在躯干中轴处的投影点,记为Ppw.,反向延长Ppw.和P之间的连线, 会与扩张人体表面产生一个交点,该点记为碰撞响应点,交点判断方式是通过圆柱映射表 排除不可能与该质点发生碰撞的S角面片,对映射块中可能发生碰撞的若干S角面片,通 过内点判断法W确定交点是否在某一S角面片中,使用重屯、法判断交点是否为S角形的内 点,若不是,再对其他=角形进行判断。
[0123] 对于质点P,首先根据上文提到的碰撞检测算法检测是否与扩张人体模型的S角 面片发生碰撞,若碰撞,则该S角面片就是质点P在当前时刻对应的S角面片,根据该面片 的向外单位法向量计算质点本轮碰撞处理的最终位置Vfwp"d,公式如下:
[0124] Pp〇sition=Vrespond+k*N"""i(7)
[0125]其中,k是阔值参数,W弥补计算过程中的精度丢失,NMtmai是碰撞响应点所在=角 面片的单位法向量。
[0126] 在将质点修正至人体外部后,还需要进行速度相关操作。传统碰撞处理方法在处 理某一服装质点时,为了防止其继续运动而对模型产生后续影响,将其设置为固定点或者 作为相对于人体某一=角面片的映射点。本文考虑到服装与人体间摩擦力的作用,并不设 置碰撞处理后的质点为固定点或映射点,而是将其沿碰撞=角面片法向量方向的速度分量 清0,保留与=角面片表面平行的速度分量,并计算服装质点沿法向量反方向的合力,根据 不同布料的摩擦系数确定对于质点P施加的是静摩擦力还是动摩擦力。
[0127] 图4中可知,当人体产生运动时,需要对服装位置进行重新划分,W确定新的对应 关系,从而通过碰撞处理的方式实现从动。
[0128] 本发明提供了一种计算机中人体服装动态仿真实现方法,具体实现该技术方案的 方法和途径很多,W上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通 技术人员来说,在不脱离本发明原理的前提下,还可W做出若干改进和润饰,该些改进和润 饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加W实 现。
【主权项】
1. 一种计算机中人体服装动态仿真实现方法,其特征在于,包括以下步骤: 步骤1,参数化人体建模:使用插值样条曲面对人体的各个部位分别建立曲面模型并 进行光顺拼接,得到完整的人体网格模型; 步骤2,载入服装模型,对服装模型和人体网格模型进行预处理; 步骤3,对服装模型构建质点-弹簧模型,进行仿真动画计算; 步骤4,对质点-弹簧模型进行积分后校正; 步骤5,对服装模型和人体网格模型进行碰撞检测和响应。2. 如权利要求1所述的一种计算机中人体服装动态仿真实现方法,其特征在于,步骤1 包括如下步骤: 步骤1-1,获取人体表面的特征点和特征尺寸; 步骤1-2,根据获取的特征点和特征尺寸,求出表面型值点; 步骤1-3,对每个人体部位进行分块表面重建,采用插值样条曲面建立每个人体分块部 位的曲面构成曲面模型,获得人体部位生成点的法向量; 步骤1-4,对各个人体分块部位的曲面模型进行光顺拼接; 步骤1-5,加入人体部位生成点的法向量、根据设置的环境光参数模拟光照以显示人体 模型; 步骤1-6,通过改变骨架点坐标以驱动人体动作实现人体动画,通过改变特征尺寸实现 人体体型的改变,骨架点是特征点中人体每个分块部位接合处的点。3. 如权利要求2所述的一种计算机中人体服装动态仿真实现方法,其特征在于,步骤 1-3包括如下步骤: 步骤1-3-1,将该人体部位分层,每层都是一条闭合曲线,通过使用插值样条建模,得到 每层曲线的控制点,形成该人体部位的控制点矩阵; 步骤1-3-2,求取插值样条曲线的一组基函数,公式如下:其中a是一个大于零的常数,X是曲线所在局部坐标系的横坐标,e是自然对数的底数, 插值样条曲面的计算公式为:其中Φ ()是插值样条曲线的一组基函数,u,v分别是水平面平行方向和人体竖直方向 上的坐标,i和j是控制点的序号,取值范围为i = 0, 1,…,m-1,j = 0, 1,…,n-1,m、η分 别表示两个方向上控制点的个数,Pi;j为一控制点的坐标,Amxn= (Ρ i;j)mXn是控制点矩阵; 步骤1-3-3,控制点矩阵中的一个元素即为控制点的坐标,将该坐标与一组基函数的值 代入插值样条曲面表达式中,通过调整参数方程中U,V的变化率,求得该人体部位表面任 意一个表面点的坐标; 步骤1-3-4,对该人体部位生成的表面点进行三角网格化得到人体模型的三角面片,并 计算各点法向量。4. 如权利要求3所述的一种计算机中人体服装动态仿真实现方法,其特征在于,步骤 1-4通过重复型值点法实现插值样条曲面的光顺拼接,包括: 对于一段曲线的光顺拼接,在一段曲线的首尾接合处各重复两个型值点作为辅助控制 点从而实现该段曲线的光顺拼接;对于两段首尾接合的曲线的光顺拼接,则在两条曲线接 合处各增加两个辅助控制点,辅助控制点选取与首尾接合处几何距离最近的型值点; 对于一块曲面的光顺拼接,通过以下步骤实现在u方向上的首尾光顺拼接:在曲面片u 方向首尾各重复两层V方向的型值点作为辅助控制点,将辅助控制点矩阵代入插值样条曲 面计算公式;对于有公共交点的不同曲面片的光顺拼接,则取与曲面片交接线的所有点间 平均几何距离最近的两层点作为辅助控制点。5. 如权利要求4所述的一种计算机中人体服装动态仿真实现方法,其特征在于,步骤2 包括如下步骤: 步骤2-1,载入服装模型,对服装模型建立邻接表以确立服装模型中点、边、面之间的关 系; 步骤2-2,对人体网格模型进行预处理,建立有向包围盒; 步骤2-3,建立扩张人体模型:对人体网格点向外扩张,得到扩张的虚拟人体模型,对 每个人体部位构建圆柱映射表。6. 如权利要求5所述的一种计算机中人体服装动态仿真实现方法,其特征在于,步骤3 包括如下步骤: 步骤3-1,质点-弹簧模型中的拉伸弹簧由横向和纵向相邻的点表示,弯曲弹簧由相间 的点表示,大弯曲弹簧由服装模型简化后相邻的质点表示,对弹簧设置参数,不同的弹簧设 置不同的弹性系数、阻尼系数,拉伸、弯曲和剪切弹簧设置弹簧最大伸长率,大弯曲弹簧设 置弹簧原长,并根据材质不同设置不同的碰撞响应系数、静摩擦系数和动摩擦系数; 步骤3-2,将服装和人体进行对齐:通过设置上衣领口位置和人体颈部位置的对应关 系或是裤子腰带位置和人体腰部位置的对应关系实现服装和人体的对齐,对齐后根据服装 质点的位置对其进行区域划分,以确定所属的人体分块部位; 步骤3-3,根据步骤3-1参数设置,计算服装质点所受内力和外力,并对服装质点进行 数值积分计算,使用Verlet积分法构造线性方程组,Verlet积分推导如下: 对于服装质点在下一个积分步长的位置Sn+1和服装质点在上一个积分步长的位置5"_1, 使用泰勒公式:3"表示服装质点在当前积分步长的位置,公式(a)加上公式(b),变形得到下一时间步 长的位置表达式: Sn+1= 28^+8^^+0 (At3), 计算当前时间步长的速度vn: Vn= HVQAtHCKAt2), 其中,△ t为积分步长,每个积分步长相当于仿真中的一帧,0为泰勒公式的余项,\为 服装质点当前的加速度,加速度由服装质点所受合力与该质点质量的比值得到,合力包括 内力和外力,内力包括弹力和阻尼力,弹力F spring和阻尼力Fdamp的计算分别如下:其中,ks为拉伸常量,为弹簧两端点即两个服装质点之间的距离,Ltffigin为弹簧原 长,即构造弹簧模型时服装质点间的初始距离,其中,kd为阻尼常量,;;为服装质点速度, 计算出的下一时间步长位置,并根据服装质点当前速度和加速度计算下一时间步长速 度,修改质点的位置和速度信息,重复本步骤,直至当前服装质点与人体发生碰撞则停止对 质点的积分计算,对所有的质点采用重复步骤3-3的处理方法,从而实现仿真。7.如权利要求6所述的一种计算机中人体服装动态仿真实现方法,其特征在于,步骤4 包括如下步骤: 对质点-弹簧模型进行校正:校正分为两类,第一类,对拉伸、剪切和普通弯曲弹簧根 据调整策略将非固定点进行基于位置校正,且引入调整优先级以减少调整轮数,轮数校正 如下:每一个服装质点都设置优先级,弹簧每被修改一次,该弹簧端点的优先级减1,若两 端点优先级不同,则修正优先级高的端点,若两端点优先级相同,则计算两端点相对速度, 如果相对速度大于〇,则校正下端点;若相对速度为〇,则同时校正;若相对速度小于〇,则校 正上端点,校正公式为:其中,为校正向量,?和5分别为弹簧校正前两端服装质点的位置,Lmax为弹簧最 大长度, 校正后的服装质点目标位置如下:其中,S(jPSw*别是弹簧两端质点的初始位置坐标,而s'(jPS' ω分别是弹簧两 端质点校正后的坐标,mdP Π!』分别为弹簧两端质点质量; 第二类,对大弯曲弹簧同时使用基于位置校正和基于速度校正,基于速度校正是将沿 弹簧伸长或压缩方向的服装质点速度分量置为0。8.如权利要求7所述的一种计算机中人体服装动态仿真实现方法,其特征在于,步骤5 包括如下步骤: 步骤5-1,检测服装质点与人体有向包围盒,排除一部分不可能与人体表面碰撞的质 占 . 步骤5-2,根据动态位置划分确定服装质点所处的人体部位,根据该人体部位的圆柱映 射表,确定服装质点属于该人体部位的人体分块部位; 步骤5-3,将服装模型与扩张人体模型进行碰撞检测,即只进行服装质点和扩张人体模 型三角面片的碰撞: 步骤5-4,当人体产生运动时,返回步骤5-2,对服装模型位置进行重新划分,以确定新 的对应关系,从而通过碰撞处理的方式实现从动。
【专利摘要】本发明公开了一种计算机中人体服装动态仿真实现方法,通过对物理模拟中的关键步骤进行设置,以实现不同材质的仿真效果。该方法的主要步骤包括人体建模、人体模型和服装模型预处理、应用力学知识计算服装仿真、积分后校正、碰撞检测和响应。本发明在传统质点弹簧模型基础上提出大弯曲弹簧以产生褶皱效果,并根据不同材质的性质设置相应的弹簧参数,对质点服装采用综合校正策略,提出完善的碰撞响应方案以充分考虑每种材质的特点。传统服装材质区分多通过大量参数测量和几何方法实现,本发明解决了传统方法效率较低或灵活性不足的缺点,能实时地实现不同材质的动态仿真。
【IPC分类】G06F17/50
【公开号】CN104881557
【申请号】CN201510347177
【发明人】杨若瑜, 薛原
【申请人】南京大学
【公开日】2015年9月2日
【申请日】2015年6月19日
转载请注明原文地址:https://www.famiwei.com/read-8138519.html

最新回复(0)