CN104881557B - 一种计算机中人体服装动态仿真实现方法 - Google Patents
一种计算机中人体服装动态仿真实现方法 Download PDFInfo
- Publication number
- CN104881557B CN104881557B CN201510347177.3A CN201510347177A CN104881557B CN 104881557 B CN104881557 B CN 104881557B CN 201510347177 A CN201510347177 A CN 201510347177A CN 104881557 B CN104881557 B CN 104881557B
- Authority
- CN
- China
- Prior art keywords
- mrow
- msub
- human body
- point
- spring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种计算机中人体服装动态仿真实现方法,通过对物理模拟中的关键步骤进行设置,以实现不同材质的仿真效果。该方法的主要步骤包括人体建模、人体模型和服装模型预处理、应用力学知识计算服装仿真、积分后校正、碰撞检测和响应。本发明在传统质点弹簧模型基础上提出大弯曲弹簧以产生褶皱效果,并根据不同材质的性质设置相应的弹簧参数,对质点服装采用综合校正策略,提出完善的碰撞响应方案以充分考虑每种材质的特点。传统服装材质区分多通过大量参数测量和几何方法实现,本发明解决了传统方法效率较低或灵活性不足的缺点,能实时地实现不同材质的动态仿真。
Description
技术领域
本发明涉及计算机图形学技术领域,尤其涉及到计算机服装仿真技术领域的计算机中人体服装动态仿真实现方法。
背景技术
虚拟试衣是当今虚拟现实领域的热点问题,相关技术被应用到诸多领域,如网络购物、CG电影、3D游戏、三维动画等。网络购衣无疑是虚拟试衣应用最重要的领域,这一新兴技术为广大消费者带来了巨大便利,具有节约成本,节约时间,选择更加多样化等优势。
目前基于物理的仿真方法是动态服装仿真的主流,因为这种方法可以取得较好的视觉效果,并且能够满足试衣系统的实时性要求,另外,较之几何仿真方法,灵活性较强,更适合动态试穿仿真。然而,随着用户对视觉感受需求的提高,试穿仿真不仅需要满足实时性和一定的真实性,还需要具备多样性,多样性包括服装造型、材质的多样性和人体体型、动作的多样性。
在不同体型、动作的人体上试穿,机器学习的方法是当前非常热门的方法,如文献1:GUAN,P.,REISS,L.,HIRSHBERG,D.A.,WEISS,A.AND BLA CK,M.J.2012.Drape:Dressingany person.ACM Transactions on Graphics(TOG)31,35中的方法。该方法的一个关键部分就是被称为DRAPE(DRessing Any PErson)的衣服模型,是由通过学习具有特定体型和姿势人体上的服装模型得到的。首先把基本物理模拟方法产生的衣物穿在具有不同体型和姿势的人体训练集上进行学习;然后由DRAPE产生刚性姿态,姿态无关性是体型变化以及姿态有关的褶皱形变,这里需要利用SCAPE模型来表示不同姿态上不同形状的人体。给出一个输入的人体,则按照人体姿势和体型会产生一个合适的服装配置。衣服的拟合处理消除了衣服与人体相互渗透而创造出了逼真的动画,实现多样化的试穿仿真。实验结果表明该方法适用于场景中包含很多人体并且每个人体可能体型姿势各异,在这种情况下可以快速实现穿衣。但由于对每个姿势都需要训练,因此更适合静态展示,不适合于动态模拟。
实现不同服装材质的方法有两种,即基于几何的和基于物理的,文献2:FENG,W.,YU,Y.,KIM,B.A deformation transformer for real-time cloth animation[C].In:Proceedings of Special Interest Group for Computer Graphics and InteractiveTechniques.Asia:ACM Press 29,4,Article 108(July 2010)中提出了在实时布料动画中通过数据驱动模型以实现褶皱效果。具体是使用数据驱动模型将低分辨率低质量的服装模拟转换成高分辨率的模拟。衣服模型的动力学特征由低分辨率的基于物理的模拟表示,而衣服表面的高分辨率空间特性(褶皱)由从低维得来的数据驱动模型产生,该数据驱动模型是通过从衣服模型中提取的旋转不变量来训练获得的,因而是独立于所选取的低分辨率模型的模拟技术。通过低频布料的单步模拟、变形转换和碰撞检测、高频布料表面重构和渲染实现布料动画,变形转换包括两个非线性映射,分别负责产生中等尺度和精细尺度的形变。该方法由于旋转不变量独立于模型,模拟耗时较少,能够用低分辨率模拟的时间实现高分辨率模拟的效果。不足之处是预处理时间长,另外如果衣服嵌入人体,也会直接影响到最终的实验结果。
文献3:WANG,H.,O'BRIEN,J.F.AND RAMAMOORTHI,R.2011.Data-driven elasticmodels for cloth:modeling and measurement.ACM Transactions on Graphics(TOG)30,71介绍了一种基于物理的试穿仿真方法,首先文中指出布料具有非线性特征,因此使用分段线性弹簧以近似非线性,其次提出在传统质点弹簧模型的基础上增加更多方向的弹簧以更加充分地考虑布料的各向异性特点,同时对不同的弹簧做合理的参数设置以实现材质区分。建模过程中使用了24个拉伸参数和15个弯曲参数。数据库中包含10种材质的样本。不同材质的参数数值是通过实际测量材质的物理属性得到的。这一方法真实性较高,但是由于其耗时较多不适合于较复杂布料,另外,每一种材质都需要测量非常多的参数,因此在一定程度上限制了该方法的扩展性。
综上,现有方法的缺点主要有:文献1中人体模型的体型改变缺少灵活性,建成人体难以完成连续动作;文献2中基于几何的材质实现方法不利于动态效果的实现,文献3虽是基于物理的材质实现,但增加了过多参数,直接影响试衣系统效率,对于较复杂服装模型的仿真会欠缺实时性。
发明内容
发明目的:本发明的目的是针对以上技术问题,提供一种使得人体模型更加易于改变的计算机中人体上的服装动态仿真实现方法。
为了解决上述技术问题,本发明公开了一种计算机中人体服装动态仿真实现方法,包括如下步骤:
步骤1,参数化人体建模:使用插值样条曲面对人体的各个部位分别建立曲面模型并进行光顺拼接,建立完整的人体网格模型,参数化建模方法无需获得人体表面的全部信息,只需根据获取的特征点和特征尺寸,求出型值点,使用文献4:Zhang R-J,Ma W.Anefficient scheme for curve and surface construction based on a set ofinterpolatory basis functions.ACM Transactions on Graphics 2011提出的插值样条曲面对各个部位的人体分别建立曲面模型并进行光顺拼接,就能建立完整的人体模型;
步骤2,载入服装模型,对服装模型和人体网格模型进行预处理;
步骤3,对服装模型构建质点-弹簧模型,进行仿真动画计算;
步骤4,对质点-弹簧模型进行积分后校正;
步骤5,对服装模型和人体网格模型进行碰撞检测和响应。
其中,步骤1包括如下步骤:
步骤1-1,获取人体表面的特征点和特征尺寸;
步骤1-2,根据获取的特征点和特征尺寸,以特征点为基准,根据特征尺寸和一定的比例关系(比例关系因人而异),如已知左膝特征点和小腿围这一特征尺寸,以特征点为中心,小腿围乘以一定的比例作为半径,即可求出周围一圈型值点,此处比例根据需要改变,因此该圈型值点不是规则圆形,通过这种方法求出每圈型值点,从而可得所有表面型值点,文献5:陈淼.参数化三维人体建模与系统实现[D].南京大学,2014对型值点做了详细介绍;
步骤1-3,对人体部位进行分块表面重建,采用插值样条曲面建立每个分块部位的曲面构成曲面模型,获得人体部位生成点的法向量,曲面模型较之实体模型和线框模型,可以兼顾真实性和效率;
步骤1-4,对各个人体分块部位的曲面进行光顺拼接;
步骤1-5,加入法向量、根据设置的环境光参数模拟光照以显示人体模型;
步骤1-6,通过改变骨架点坐标以驱动人体动作实现人体动画,通过改变特征尺寸实现人体体型的改变,骨架点是特征点中人体每个部位接合处的点,是与运动相关的,如膝盖点,而有些特征点如乳高则不是骨架点。
对于每个人体部位,步骤1-3包括如下步骤:
步骤1-3-1,将该部位分层,每层都是一条闭合曲线,由于使用插值样条建模,因此曲线通过控制点,可以得到每层曲线的控制点,形成该部位的控制点矩阵,控制点可以方便地控制曲线形状;
步骤1-3-2,求取插值样条曲线的一组基函数,公式如下:
其中x是曲线所在局部坐标系的横坐标,e是自然对数的底数,a是一个大于零的常数,从误差角度以及最终生成曲线(曲面)的圆滑程度考虑,通常选择插值样条曲线(曲面)中改变任何一个型值点,对曲线形状的影响限制在局部作用域中,且能保证最终生成的曲线(曲面)精确通过每一个型值点。插值样条曲面的计算公式为:
其中Ф()是提到的插值样条曲线的一组基函数Ф(x,a),参见文献4,u,v分别是水平面平行方向和人体竖直方向上的坐标,i和j是控制点的序号,取值范围为i=0,1,…,m-1,j=0,1,…,n-1,m、n分别表示两个方向上控制点的个数,Pi,j为一控制点的坐标,Am×n=(Pi,j)m×n是控制点矩阵;
步骤1-3-3,控制点矩阵中的一个元素即为控制点的坐标,将该坐标与一组基函数的值代入插值样条曲面表达式中,通过调整参数方程中u,v的变化率,求得该人体部位表面任意一个表面点的坐标,表面点坐标用于与服装质点进行碰撞检测;
步骤1-3-4,对该人体部位生成的表面点进行三角网格化得到人体模型的三角面片,并计算各点法向量。
步骤1-4包括:通过重复型值点法实现插值样条曲面的光顺拼接:
对于一段曲线的光顺拼接,在一段曲线的首尾接合处各重复两个型值点作为辅助控制点从而实现该段曲线的光顺拼接;对于两段首尾接合的曲线的光顺拼接,则在两条曲线接合处各增加两个辅助控制点,辅助控制点选取与首尾接合处几何距离最近的型值点;
对于一块曲面的光顺拼接,通过以下步骤实现在u方向上的首尾光顺拼接:在曲面片u方向首尾各重复两层v方向的型值点作为辅助控制点,将辅助控制点矩阵代入插值样条曲面计算公式;对于有公共交点的不同曲面片的光顺拼接,则取与曲面片交接线的所有点间平均几何距离最近的两层点作为辅助控制点。
相对于基于点云重建人体模型的方法,这种建模方法效率更高且具有更高的灵活性,参为更加方便地控制和改变人体提供了可能,通过特征尺寸的改变可以改变体型,而通过特征点的位置改变可以快捷地实现人体动画效果。
步骤2包括如下步骤:
步骤2-1,载入3dmax服装模型,对服装模型建立邻接表以确立服装模型中点、边、面之间的关系,邻接表中的边结构也是构造质点弹簧模型的基础;
步骤2-2,对建立好的人体网格模型进行预处理,建立有向包围盒(OrientedBounding Box,简称OBB,有向包围盒);
步骤2-3,建立扩张人体模型:对人体网格点向外扩张,扩张点是将人体表面网格点沿着其向外的法向量移动一定距离获得,所有扩张点会构成比原模型略大的扩张虚拟人体模型,对每个人体部位构建圆柱映射表,以便在接下来的仿真中确定服装质点对应的圆柱映射表,从而缩小碰撞疑似区域。
步骤3包括如下步骤:
步骤3-1,对服装模型构造质点-弹簧模型,质点-弹簧模型中的拉伸弹簧由横向和纵向相邻的点表示,弯曲弹簧由相间的点表示,大弯曲弹簧由服装模型简化后相邻的质点表示,简化方法是将三角形缩减到三角形的一个顶点,得到简化顶点,并对简化顶点之间构造三角网格,得到简化服装模型。根据不同的材质,对弹簧设置不同参数,棉质服装的拉伸和剪切弹簧设置较大的弹性系数(200~300)、阻尼系数(40~60),并对大弯曲弹簧设置较大的弹性系数(100~150)和阻尼系数(20~30),以实现一定硬度的褶皱效果。丝质服装的拉伸和剪切弹簧设置较大的弹性系数(500~600)、较小的阻尼系数(1~2),弹性服装的拉伸和剪切弹簧设置较小的弹性系数(30~40)、中等的阻尼系数(4~10)。拉伸、弯曲和剪切弹簧设置弹簧最大伸长率以避免产生超弹性,棉质和丝质的最大伸长率较小(0.001~0.002),弹性质地的最大伸长率较大(0.05~0.1),大弯曲弹簧设置弹簧原长(0.9~0.95),并根据材质不同设置不同的碰撞响应系数、静摩擦系数和动摩擦系数,棉质和弹性的摩擦系数较大(分别为0.3和0.15),丝质的摩擦系数较小(0.05),棉质材质密度较大,因此碰撞响应系数较大(2.0~4.0),丝质和弹性的碰撞响应系数较小(1.2~1.5);
步骤3-2,将服装和人体进行对齐:通过设置上衣领口位置和人体颈部位置的对应关系或是裤子腰带位置和人体腰部位置的对应关系实现服装和人体的对齐,对齐后根据服装质点的位置对其进行区域划分,以确定所属的人体分块部位;
步骤3-3,根据步骤3-1提到的与力相关的参数设置,计算服装质点所受内力和外力,并对服装质点进行数值积分计算,使用韦尔莱Verlet积分法构造线性方程组,Verlet积分推导如下:
对于服装质点在下一个积分步长的位置Sn+1和服装质点在上一个积分步长的位置Sn-1,使用泰勒公式:
Sn表示服装质点在当前积分步长的位置,公式(a)加上公式(b),变形得到下一时间步长的位置表达式:
Sn+1=2Sn-Sn-1+atΔt2+O(Δt3),
计算当前时间步长的速度vn:
vn=(Sn+1-Sn-1)/(2Δt)+O(Δt2),
其中,Δt为积分步长,每个积分步长相当于仿真中的一帧,at为服装质点当前的加速度,O为泰勒公式的余项,其中,加速度与服装质点当前所受合力有关,加速度与服装质点所受合力的关系如下:
at=Ft/m
其中,Ft是当前质点所受合力,m是质点质量,合力包括内力和外力,外力如重力,内力包括弹力和阻尼力,弹力Fspring和阻尼力Fdamp的计算分别如下:
其中,ks为拉伸常量,为弹簧两端点即两个服装质点之间的距离,Lorigin为弹簧原长,即构造弹簧模型时服装质点间的初始距离,
其中,kd为阻尼常量,为服装质点速度。
计算出的下一时间步长位置,并根据当前速度和加速度计算下一时间步长速度,修改质点的位置和速度信息,重复步骤3-3,直至当前服装质点与人体发生碰撞则停止对质点的积分计算,对所有的质点采用相同的处理方法,从而实现仿真。
步骤4包括如下步骤:
对质点-弹簧模型进行校正:在每个积分步长结束后,可能会出现弹簧过度拉伸或压缩,从而出现超弹性现象,为避免这一现象,需要对弹簧进行校正,过伸长和过压缩的弹簧都需要校正,校正分为两类,第一类,对拉伸、剪切和普通弯曲弹簧根据调整策略将非固定点进行基于位置校正,且引入调整优先级以减少调整轮数,轮数校正如下:每一个服装质点都设置优先级,弹簧每被修改一次,该弹簧端点的优先级减1,若两端点优先级不同,则修正优先级高的端点,若两端点优先级相同,则计算两端点相对速度,如果相对速度大于0,则校正下端点;若相对速度为0,则同时校正;若相对速度小于0,则校正上端点,校正公式为:
其中,为校正向量,和分别为弹簧校正前两端服装质点的位置,Lmax为弹簧最大长度,
校正后的服装质点目标位置如下:
其中,S(i)和S(j)分别是弹簧两端质点的初始位置坐标,而S’(i)和S’(j)分别是弹簧两端质点校正后的坐标,mi和mj分别为弹簧两端质点质量。
第二类,对大弯曲弹簧同时使用基于位置和基于速度校正,基于位置校正即上述校正公式的校正方法,基于速度校正是将沿弹簧伸长或压缩方向的服装质点速度分量置为0,引入基于速度校正的主要目的是使得弹簧快速进入稳定状态,以实现一定硬度褶皱效果。
步骤5包括如下步骤:
步骤5-1,检测服装质点与人体OBB包围盒,由于人体每个部位都在相应OBB内部,若服装质点在OBB外,则一定不会与人体该部位发生碰撞,由此排除一部分不可能与人体表面碰撞的质点;
步骤5-2,根据动态位置划分确定服装质点所处的人体部位,具体是根据质点当前的位置坐标,与人体各部位接合处的坐标值进行比较,以确定质点所属人体部位。根据该人体部位的圆柱映射表,确定服装质点属于该人体部位的人体分块部位;
步骤5-3,将服装模型与扩张人体模型进行碰撞检测,即只进行服装质点和扩张人体模型三角面片的碰撞:
步骤5-4,当人体产生运动时,返回步骤5-2,对服装模型位置进行重新划分,以确定新的对应关系,从而通过碰撞处理的方式实现从动。这种由外至内多步骤的检测方法可以在预检测中将可能与服装某质点碰撞的人体区域范围尽可能缩小,从而大大提高检测效率。碰撞响应过程将检测为碰撞的服装质点按照一定的算法修正至人体外部,若发生运动还需要给该质点一个碰撞响应力,将该质点沿着碰撞三角面片法向量方向的速度分量清零。根据碰撞响应力和摩擦系数,计算质点所受摩擦力,将摩擦力加入下一积分步长的模拟中。
本发明通过物理参数和关键步骤的改进以区分服装材质,完全使用物理方法获取仿真效果,并在预处理、校正和碰撞检测时使用多种加速手段,以在保证真实感的同时,尽量提升系统计算效率,保证动态仿真的实时性。
有益效果:
1)基于插值样条曲面建立的人体模型其表面凹凸性较好,易于精细地表现人体,而结合参数参数化分块建模的方法,人体的造型取决于获取的若干特征点和特征参数,使得人体模型更易于改变。另外,对人体进行的多重预处理大大提高了试穿过程的效率。
2)对传统质点-弹簧模型进行改进,提出大弯曲弹簧以产生褶皱,大弯曲弹簧的引入主要是为了得到一定硬度材质的效果,如实现棉质服装材质的仿真。在不大量增加参数的基础上,使用物理方法即可快速实现材质区分。避免了传统材质实现方法参数过多、灵活性不足的缺陷。
3)对试穿仿真的各个步骤提出改进方案,能够获得稳定的仿真结果。系统流程能够满足不同体型的人体和不同款式的衣服,使得衣物与人体的试穿呈现多样化。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是本发明的整体步骤图。
图2是本发明的人体建模流程图。
图3是本发明的弹簧构造过程。
图4是本发明的试穿仿真流程图。
具体实施方式
本发明的方法可分为五大步骤,如图1所示,包括1参数化人体建模,2服装和人体模型预处理,3服装仿真动画实现,4积分后校正,5碰撞检测和响应。
本发明的具体步骤如下:
1)参数化人体建模
如图2所示,
a、获取人体表面的特征点和特征尺寸,具体获取方式可通过深度摄像头或手工设定
b、对获取的数据进行预处理;
c、每个人体部位通过分层建立表面网格,因此需要计算分层截面的型值点;
d、对人体进行分块表面重建,对每块部位曲面采用文献4提到的插值样条曲面建立,基于插值样条分块建模的大体步骤如下:
d-1,计算人体躯干各层控制点,形成人体躯干控制点矩阵;
d-2,求取插值样条曲面的一组基函数;
d-3,将控制点坐标与一组基函数的值代入插值样条曲面表达式中,可通过调整参数方程中u,v的变化率,求得人体表面任意个数点的坐标;
d-4,对躯干生成点进行三角网格化,并计算各点法向量,方便后续光照条件下观察人体。
e、使用插值样条曲面建立完每个部位的人体后,对各个人体分块曲面进行光顺拼接,使用“重复型值点”的方法以实现该部位的光顺拼接,即若要对一块曲面片u方向首尾光顺拼接,则需在u方向首尾各重复两层v方向的型值点作为辅助控制点作为控制点矩阵代入插值样条曲面计算公式。
f、加入法向量、光照信息显示人体模型
g、人体动画的实现通过改变骨架点坐标以驱动人体动作改变,人体体型的改变通过改变特征尺寸实现。
2)服装和人体模型预处理
如图4的人体模型构造部分所示,在建立人体网格模型后,对人体建立有向包围盒(简称OBB)和圆柱映射表以加速随后的碰撞检测过程。具体过程是对人体的每个部位先建立局部坐标系,根据局部坐标系建立轴对齐围盒(简称AABB),并将包围盒顶点坐标转换为全局坐标,即可得OBB的顶点坐标。建立扩张人体模型,对人体质点向外扩张一定的距离,产生虚拟人体,可以避免人体网格边和服装网格边以及人体点和服装三角面片的碰撞检测,而只进行人体面片和服装质点的碰撞检测。圆柱映射表的建立可以缩小服装模型对应的可能发生碰撞的位置。
如图4的衣服模型构造部分所示,需要对服装模型质点进行简化,以加速其后的碰撞检测过程,使用文献4:ISLER V.,LAU R.W.H.,GREEN M..Real-time multi-resolutionmodeling for complex virtual environments[C].In:Proceeding of the VRST’96.HongKong,1996:11~19的方法,选取三角面片上的一个顶点作为该三角形折叠后的点,这种点设置方法避免了计算新顶点的复杂过程,减少了时间消耗。接着对服装模型建立邻接表以存储点、边和三角面信息及其相互之间的关系,且有利于接下来质点弹簧模型的构造。
3)服装仿真动画计算
对服装构造质点-弹簧模型,质点-弹簧模型中的拉伸弹簧由横向和纵向相邻的点表示,弯曲弹簧由相间的点表示,大弯曲弹簧由服装模型简化后相邻的质点表示,如图3。对弹簧设置参数,不同的弹簧设置不同的弹性系数、阻尼系数。拉伸、弯曲和剪切弹簧设置弹簧最大伸长率,大弯曲弹簧设置弹簧原长。并根据材质不同设置不同的碰撞响应系数、静摩擦系数和动摩擦系数。接着需要对服装和人体进行大致对齐,如图4的试穿仿真部分所示,对齐的方法是通过设置上衣领口位置和人体颈部位置的对应关系或是裤子腰带位置和人体腰部位置的对应关系实现,大致对齐后根据服装质点的位置对其进行区域划分,以确定所属的人体分块。然后,需要根据参数设置,计算质点所受内力和外力,并对质点进行数值积分计算,由于Verlet积分可以兼顾稳定性和效率,因此使用Verlet积分法构造线性方程组,Verlet积分推导如下,可根据当前位置和上一时间步长的位置,得到下一时间步长质点的位置,然后由该位置求得当前速度,由此得下一时间步长的速度值:
对于Sn+1和Sn-1,使用泰勒公式:
(a)+(b),变形可得位置表达式:
Sn+1=2Sn-Sn-1+atΔt2+O(Δt3) (1)
((a)-(b))/(2Δt)可得速度表达式:
vn=(Sn+1-Sn-1)/(2Δt)+O(Δt2) (2)
其中,Δt为积分步长,积分步长的设置需考虑综合系统的稳定性和效率,可选值在0.02s~0.05s之间,每个积分步长是相当于仿真中的一帧,Sn-1、Sn和Sn+1分别为服装质点在上一个、当前和下一个积分步长的位置,此处下一积分步长的位置可能因为积分后校正而修改。at为当前的加速度,与质点当前所受合力有关,需要考虑弹簧内力,包括弹力和阻尼力,弹力和阻尼力的分别见公式(3)和(4),以及质点所受外力,主要是重力,也可能有摩擦力和碰撞响应力。vn是当前速度,下一步速度可由当前速度和加速度获得。
其中,ks为拉伸常量,该常量与弹簧本身性质有关,为弹簧两端点即两个服装质点之间的距离,Lorigin为弹簧原长,即构造弹簧时质点间的初始距离。
其中,kd为阻尼常量,该常量与弹簧本身的性质有关,为质点速度。
4)积分后校正
如图4中所示,每个积分步长结束后,为避免超弹性现象,需要对弹簧进行校正,过伸长和过压缩的弹簧都需要校正。对拉伸、剪切和普通弯曲弹簧采用改进的基于位置校正,即根据一定调整策略将非固定点进行位置调整,且引入调整优先级以减少调整轮数。轮数校正如下:每一个质点都设置优先级,弹簧每被修改一次,该弹簧端点的优先级减1。若两端点优先级不同,则修正优先级高的端点。若两端点优先级相同,则需计算两端点相对速度,如果在相对速度方向在弹簧伸长方向(>0),则校正下端点;若相对速度为0,则同时校正;若相对速度<0,则校正上端点。校正公式为:
其中,为校正向量,和分别为弹簧校正前两端质点的位置,Lmax为弹簧最大长度。
校正后的质点目标位置如下:
对大弯曲弹簧同时使用基于位置和基于速度校正,将沿弹簧伸长或压缩方向的质点速度分量置为0,引入速度校正的主要目的是使得弹簧快速进入稳定状态,以实现一定硬度褶皱效果。
5)碰撞检测和响应
a、第一轮:服装简化质点的碰撞检测,对人体的每个部分建立OBB包围盒,碰撞检测过程中,服装质点首先与OBB包围盒进行检测,可排除一部分不可能与人体表面碰撞的质点。
b、根据动态位置划分可以确定服装质点位于人体的具体部位,其后根据该部位的圆柱映射表,确定服装质点属于该部位的哪个小块。
c、使用距离场方法对人体网格点向外扩张,产生虚拟的人体模型,称为扩张人体模型,服装与人体进行碰撞检测时,只需与扩张人体模型进行碰撞检测,该方法可以只进行衣服质点和人体模型三角面片的碰撞,即“点-三角形”碰撞,从而避免了“边-边”碰撞和“三角形-点”碰撞。这一步检测的主要是服装质点和其所在圆柱映射表小块中的人体三角面片的碰撞情况。
对于检测为碰撞的质点P,首先将P投影至所属部位的中轴,例如P与人体躯干部分发生碰撞,则求得其在躯干中轴处的投影点,记为Pproj,反向延长Pproj和P之间的连线,会与扩张人体表面产生一个交点,该点记为碰撞响应点,交点判断方式是通过圆柱映射表排除不可能与该质点发生碰撞的三角面片,对映射块中可能发生碰撞的若干三角面片,通过内点判断法以确定交点是否在某一三角面片中,使用重心法判断交点是否为三角形的内点,若不是,再对其他三角形进行判断。
对于质点P,首先根据上文提到的碰撞检测算法检测是否与扩张人体模型的三角面片发生碰撞,若碰撞,则该三角面片就是质点P在当前时刻对应的三角面片,根据该面片的向外单位法向量计算质点本轮碰撞处理的最终位置vrespond,公式如下:
pposition=vrespond+k*Nnormal (7)
其中,k是阈值参数,以弥补计算过程中的精度丢失,Nnormal是碰撞响应点所在三角面片的单位法向量。
在将质点修正至人体外部后,还需要进行速度相关操作。传统碰撞处理方法在处理某一服装质点时,为了防止其继续运动而对模型产生后续影响,将其设置为固定点或者作为相对于人体某一三角面片的映射点。本文考虑到服装与人体间摩擦力的作用,并不设置碰撞处理后的质点为固定点或映射点,而是将其沿碰撞三角面片法向量方向的速度分量清0,保留与三角面片表面平行的速度分量,并计算服装质点沿法向量反方向的合力,根据不同布料的摩擦系数确定对于质点P施加的是静摩擦力还是动摩擦力。
图4中可知,当人体产生运动时,需要对服装位置进行重新划分,以确定新的对应关系,从而通过碰撞处理的方式实现从动。
本发明提供了一种计算机中人体服装动态仿真实现方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (1)
1.一种计算机中人体服装动态仿真实现方法,其特征在于,包括以下步骤:
步骤1,参数化人体建模:使用插值样条曲面对人体的各个部位分别建立曲面模型并进行光顺拼接,得到完整的人体网格模型;
步骤2,载入服装模型,对服装模型和人体网格模型进行预处理;
步骤3,对服装模型构建质点-弹簧模型,进行仿真动画计算;
步骤4,对质点-弹簧模型进行积分后校正;
步骤5,对服装模型和人体网格模型进行碰撞检测和响应;
步骤1包括如下步骤:
步骤1-1,获取人体表面的特征点和特征尺寸;
步骤1-2,根据获取的特征点和特征尺寸,求出表面型值点;
步骤1-3,对每个人体部位进行分块表面重建,采用插值样条曲面建立每个人体分块部位的曲面构成曲面模型,获得人体部位生成点的法向量;
步骤1-4,对各个人体分块部位的曲面模型进行光顺拼接;
步骤1-5,加入人体部位生成点的法向量、根据设置的环境光参数模拟光照以显示人体模型;
步骤1-6,通过改变骨架点坐标以驱动人体动作实现人体动画,通过改变特征尺寸实现人体体型的改变,骨架点是特征点中人体每个分块部位接合处的点;
步骤1-3包括如下步骤:
步骤1-3-1,将该人体部位分层,每层都是一条闭合曲线,通过使用插值样条建模,得到每层曲线的控制点,形成该人体部位的控制点矩阵;
步骤1-3-2,求取插值样条曲线的一组基函数,公式如下:
<mrow>
<mi>&phi;</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>,</mo>
<mi>a</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mfrac>
<mrow>
<mi>s</mi>
<mi>i</mi>
<mi>n</mi>
<mrow>
<mo>(</mo>
<mi>&pi;</mi>
<mi>x</mi>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mi>&pi;</mi>
<mi>x</mi>
</mrow>
</mfrac>
<msup>
<mi>e</mi>
<mrow>
<mo>-</mo>
<msup>
<mi>ax</mi>
<mn>2</mn>
</msup>
</mrow>
</msup>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>x</mi>
<mo>&NotEqual;</mo>
<mn>0</mn>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mrow>
<mi>x</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>,</mo>
</mrow>
其中a是一个大于零的常数,x是曲线所在局部坐标系的横坐标,e是自然对数的底数,插值样条曲面的计算公式为:
<mrow>
<mi>P</mi>
<mrow>
<mo>(</mo>
<mi>u</mi>
<mo>,</mo>
<mi>v</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mrow>
<mi>m</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</munderover>
<msub>
<mi>P</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mi>&phi;</mi>
<mrow>
<mo>(</mo>
<mi>u</mi>
<mo>-</mo>
<mi>i</mi>
<mo>,</mo>
<mi>a</mi>
<mo>)</mo>
</mrow>
<mi>&phi;</mi>
<mrow>
<mo>(</mo>
<mi>v</mi>
<mo>-</mo>
<mi>j</mi>
<mo>,</mo>
<mi>a</mi>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mo>=</mo>
<mrow>
<mo>(</mo>
<mi>&phi;</mi>
<mo>(</mo>
<mrow>
<mi>u</mi>
<mo>-</mo>
<mn>0</mn>
<mo>,</mo>
<mi>a</mi>
</mrow>
<mo>)</mo>
<mo>,</mo>
<mi>&phi;</mi>
<mo>(</mo>
<mrow>
<mi>u</mi>
<mo>-</mo>
<mn>1</mn>
<mo>,</mo>
<mi>a</mi>
</mrow>
<mo>)</mo>
<mo>,</mo>
<mo>...</mo>
<mo>,</mo>
<mi>&phi;</mi>
<mo>(</mo>
<mrow>
<mi>u</mi>
<mo>-</mo>
<mi>m</mi>
<mo>,</mo>
<mi>a</mi>
</mrow>
<mo>)</mo>
<mo>)</mo>
</mrow>
<msub>
<mi>A</mi>
<mrow>
<mi>m</mi>
<mo>&times;</mo>
<mi>n</mi>
</mrow>
</msub>
<mfenced open = "(" close = ")">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>&phi;</mi>
<mrow>
<mo>(</mo>
<mrow>
<mi>v</mi>
<mo>-</mo>
<mn>0</mn>
<mo>,</mo>
<mi>a</mi>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>&phi;</mi>
<mrow>
<mo>(</mo>
<mrow>
<mi>v</mi>
<mo>-</mo>
<mn>1</mn>
<mo>,</mo>
<mi>a</mi>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>...</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>&phi;</mi>
<mrow>
<mo>(</mo>
<mrow>
<mi>v</mi>
<mo>-</mo>
<mi>n</mi>
<mo>+</mo>
<mn>1</mn>
<mo>,</mo>
<mi>a</mi>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>,</mo>
</mrow>
其中Ф()是插值样条曲线的一组基函数,u,v分别是水平面平行方向和人体竖直方向上的坐标,i和j是控制点的序号,取值范围为i=0,1,…,m-1,j=0,1,…,n-1,m、n分别表示两个方向上控制点的个数,Pi,j为一控制点的坐标,Am×n=(Pi,j)m×n是控制点矩阵;
步骤1-3-3,控制点矩阵中的一个元素即为控制点的坐标,将该坐标与一组基函数的值代入插值样条曲面表达式中,通过调整参数方程中u,v的变化率,求得该人体部位表面任意一个表面点的坐标;
步骤1-3-4,对该人体部位生成的表面点进行三角网格化得到人体模型的三角面片,并计算各点法向量;
步骤1-4通过重复型值点法实现插值样条曲面的光顺拼接,包括:
对于一段曲线的光顺拼接,在一段曲线的首尾接合处各重复两个型值点作为辅助控制点从而实现该段曲线的光顺拼接;对于两段首尾接合的曲线的光顺拼接,则在两条曲线接合处各增加两个辅助控制点,辅助控制点选取与首尾接合处几何距离最近的型值点;
对于一块曲面的光顺拼接,通过以下步骤实现在u方向上的首尾光顺拼接:在曲面片u方向首尾各重复两层v方向的型值点作为辅助控制点,将辅助控制点矩阵代入插值样条曲面计算公式;对于有公共交点的不同曲面片的光顺拼接,则取与曲面片交接线的所有点间平均几何距离最近的两层点作为辅助控制点;
步骤2包括如下步骤:
步骤2-1,载入服装模型,对服装模型建立邻接表以确立服装模型中点、边、面之间的关系;
步骤2-2,对人体网格模型进行预处理,建立有向包围盒;
步骤2-3,建立扩张人体模型:对人体网格点向外扩张,得到扩张的虚拟人体模型,对每个人体部位构建圆柱映射表;
步骤3包括如下步骤:
步骤3-1,质点-弹簧模型中的拉伸弹簧由横向和纵向相邻的点表示,弯曲弹簧由相间的点表示,大弯曲弹簧由服装模型简化后相邻的质点表示,对弹簧设置参数,不同的弹簧设置不同的弹性系数、阻尼系数,拉伸、弯曲和剪切弹簧设置弹簧最大伸长率,大弯曲弹簧设置弹簧原长,并根据材质不同设置不同的碰撞响应系数、静摩擦系数和动摩擦系数;
步骤3-2,将服装和人体进行对齐:通过设置上衣领口位置和人体颈部位置的对应关系或是裤子腰带位置和人体腰部位置的对应关系实现服装和人体的对齐,对齐后根据服装质点的位置对其进行区域划分,以确定所属的人体分块部位;
步骤3-3,根据步骤3-1参数设置,计算服装质点所受内力和外力,并对服装质点进行数值积分计算,使用Verlet积分法构造线性方程组,Verlet积分推导如下:
对于服装质点在下一个积分步长的位置Sn+1和服装质点在上一个积分步长的位置Sn-1,使用泰勒公式:
<mrow>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>S</mi>
<mrow>
<mi>n</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>=</mo>
<msub>
<mi>S</mi>
<mi>n</mi>
</msub>
<mo>+</mo>
<msub>
<mi>v</mi>
<mi>n</mi>
</msub>
<mi>&Delta;</mi>
<mi>t</mi>
<mo>+</mo>
<msub>
<mi>a</mi>
<mi>t</mi>
</msub>
<mfrac>
<mrow>
<msup>
<mi>&Delta;t</mi>
<mn>2</mn>
</msup>
</mrow>
<mrow>
<mn>2</mn>
<mo>!</mo>
</mrow>
</mfrac>
<mo>+</mo>
<mi>O</mi>
<mrow>
<mo>(</mo>
<msup>
<mi>&Delta;t</mi>
<mn>3</mn>
</msup>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mo>(</mo>
<mi>a</mi>
<mo>)</mo>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>S</mi>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>=</mo>
<msub>
<mi>S</mi>
<mi>n</mi>
</msub>
<mo>-</mo>
<msub>
<mi>v</mi>
<mi>n</mi>
</msub>
<mi>&Delta;</mi>
<mi>t</mi>
<mo>+</mo>
<msub>
<mi>a</mi>
<mi>t</mi>
</msub>
<mfrac>
<mrow>
<msup>
<mi>&Delta;t</mi>
<mn>2</mn>
</msup>
</mrow>
<mrow>
<mn>2</mn>
<mo>!</mo>
</mrow>
</mfrac>
<mo>+</mo>
<mi>O</mi>
<mrow>
<mo>(</mo>
<msup>
<mi>&Delta;t</mi>
<mn>3</mn>
</msup>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mo>(</mo>
<mi>b</mi>
<mo>)</mo>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>,</mo>
</mrow>
Sn表示服装质点在当前积分步长的位置,公式(a)加上公式(b),变形得到下一时间步长的位置表达式:
Sn+1=2Sn-Sn-1+atΔt2+O(Δt3),
计算当前时间步长的速度vn:
vn=(Sn+1-Sn-1)/(2Δt)+O(Δt2),
其中,Δt为积分步长,每个积分步长相当于仿真中的一帧,O为泰勒公式的余项,at为服装质点当前的加速度,加速度由服装质点所受合力与该质点质量的比值得到,合力包括内力和外力,内力包括弹力和阻尼力,弹力Fspring和阻尼力Fdamp的计算分别如下:
其中,ks为拉伸常量,为弹簧两端点即两个服装质点之间的距离,Lorigin为弹簧原长,即构造弹簧模型时服装质点间的初始距离,
其中,kd为阻尼常量,为服装质点速度,
计算出的下一时间步长位置,并根据服装质点当前速度和加速度计算下一时间步长速度,修改质点的位置和速度信息,重复本步骤,直至当前服装质点与人体发生碰撞则停止对质点的积分计算,对所有的质点采用重复步骤3-3的处理方法,从而实现仿真;
步骤4包括如下步骤:
对质点-弹簧模型进行校正:校正分为两类,第一类,对拉伸、剪切和普通弯曲弹簧根据调整策略将非固定点进行基于位置校正,且引入调整优先级以减少调整轮数,轮数校正如下:每一个服装质点都设置优先级,弹簧每被修改一次,该弹簧端点的优先级减1,若两端点优先级不同,则修正优先级高的端点,若两端点优先级相同,则计算两端点相对速度,如果相对速度大于0,则校正下端点;若相对速度为0,则同时校正;若相对速度小于0,则校正上端点,校正公式为:
<mrow>
<msub>
<mover>
<mi>V</mi>
<mo>&RightArrow;</mo>
</mover>
<mrow>
<mi>c</mi>
<mi>o</mi>
<mi>r</mi>
<mi>r</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mover>
<msub>
<mi>v</mi>
<mi>i</mi>
</msub>
<mo>&RightArrow;</mo>
</mover>
<mo>-</mo>
<mover>
<msub>
<mi>v</mi>
<mi>j</mi>
</msub>
<mo>&RightArrow;</mo>
</mover>
</mrow>
<mrow>
<mo>|</mo>
<mover>
<msub>
<mi>v</mi>
<mi>i</mi>
</msub>
<mo>&RightArrow;</mo>
</mover>
<mo>-</mo>
<mover>
<msub>
<mi>v</mi>
<mi>j</mi>
</msub>
<mo>&RightArrow;</mo>
</mover>
<mo>|</mo>
</mrow>
</mfrac>
<mo>&CenterDot;</mo>
<mrow>
<mo>(</mo>
<mo>|</mo>
<mover>
<msub>
<mi>v</mi>
<mi>i</mi>
</msub>
<mo>&RightArrow;</mo>
</mover>
<mo>-</mo>
<mover>
<msub>
<mi>v</mi>
<mi>j</mi>
</msub>
<mo>&RightArrow;</mo>
</mover>
<mo>|</mo>
<mo>-</mo>
<msub>
<mi>L</mi>
<mrow>
<mi>m</mi>
<mi>a</mi>
<mi>x</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mo>,</mo>
</mrow>
其中,为校正向量,和分别为弹簧校正前两端服装质点的位置,Lmax为弹簧最大长度,
校正后的服装质点目标位置如下:
<mrow>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<msup>
<mi>S</mi>
<mo>&prime;</mo>
</msup>
<mrow>
<mo>(</mo>
<mi>i</mi>
<mo>)</mo>
</mrow>
</msub>
<mo>=</mo>
<msub>
<mi>S</mi>
<mrow>
<mo>(</mo>
<mi>i</mi>
<mo>)</mo>
</mrow>
</msub>
<mo>-</mo>
<mfrac>
<mrow>
<mn>1</mn>
<mo>/</mo>
<msub>
<mi>m</mi>
<mi>i</mi>
</msub>
</mrow>
<mrow>
<mn>1</mn>
<mo>/</mo>
<msub>
<mi>m</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mn>1</mn>
<mo>/</mo>
<msub>
<mi>m</mi>
<mi>j</mi>
</msub>
</mrow>
</mfrac>
<mo>&CenterDot;</mo>
<msub>
<mover>
<mi>V</mi>
<mo>&RightArrow;</mo>
</mover>
<mrow>
<mi>c</mi>
<mi>o</mi>
<mi>r</mi>
<mi>r</mi>
</mrow>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<msup>
<mi>S</mi>
<mo>&prime;</mo>
</msup>
<mrow>
<mo>(</mo>
<mi>j</mi>
<mo>)</mo>
</mrow>
</msub>
<mo>=</mo>
<msub>
<mi>S</mi>
<mrow>
<mo>(</mo>
<mi>j</mi>
<mo>)</mo>
</mrow>
</msub>
<mo>+</mo>
<mfrac>
<mrow>
<mn>1</mn>
<mo>/</mo>
<msub>
<mi>m</mi>
<mi>j</mi>
</msub>
</mrow>
<mrow>
<mn>1</mn>
<mo>/</mo>
<msub>
<mi>m</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<mn>1</mn>
<mo>/</mo>
<msub>
<mi>m</mi>
<mi>j</mi>
</msub>
</mrow>
</mfrac>
<mo>&CenterDot;</mo>
<msub>
<mover>
<mi>V</mi>
<mo>&RightArrow;</mo>
</mover>
<mrow>
<mi>c</mi>
<mi>o</mi>
<mi>r</mi>
<mi>r</mi>
</mrow>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>,</mo>
</mrow>
其中,S(i)和S(j)分别是弹簧两端质点的初始位置坐标,而S’(i)和S’(j)分别是弹簧两端质点校正后的坐标,mi和mj分别为弹簧两端质点质量;
第二类,对大弯曲弹簧同时使用基于位置校正和基于速度校正,基于速度校正是将沿弹簧伸长或压缩方向的服装质点速度分量置为0;
步骤5包括如下步骤:
步骤5-1,检测服装质点与人体有向包围盒,排除一部分不可能与人体表面碰撞的质点;
步骤5-2,根据动态位置划分确定服装质点所处的人体部位,根据该人体部位的圆柱映射表,确定服装质点属于该人体部位的人体分块部位;
步骤5-3,将服装模型与扩张人体模型进行碰撞检测,即只进行服装质点和扩张人体模型三角面片的碰撞:
步骤5-4,当人体产生运动时,返回步骤5-2,对服装模型位置进行重新划分,以确定新的对应关系,从而通过碰撞处理的方式实现从动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510347177.3A CN104881557B (zh) | 2015-06-19 | 2015-06-19 | 一种计算机中人体服装动态仿真实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510347177.3A CN104881557B (zh) | 2015-06-19 | 2015-06-19 | 一种计算机中人体服装动态仿真实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104881557A CN104881557A (zh) | 2015-09-02 |
CN104881557B true CN104881557B (zh) | 2017-10-17 |
Family
ID=53949050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510347177.3A Active CN104881557B (zh) | 2015-06-19 | 2015-06-19 | 一种计算机中人体服装动态仿真实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104881557B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108140250B (zh) * | 2015-10-09 | 2022-08-23 | 奥达斯自动化信息产业有限公司 | 在虚拟三维环境中的人体模型上创建和编辑表示服装的曲面的计算机化方法 |
CN105354879A (zh) * | 2015-10-12 | 2016-02-24 | 北京服装学院 | 基于质点弹簧结构的通用服装三维模型仿真方法及系统 |
CN105303608B (zh) * | 2015-11-10 | 2017-11-07 | 南京大学 | 一种计算机中虚拟试衣服装模型自动对齐及尺寸判断方法 |
CN106354959A (zh) * | 2016-08-31 | 2017-01-25 | 北京维盛视通科技有限公司 | 三维服装与人体模型的碰撞检测方法及装置 |
CN106372344A (zh) * | 2016-09-05 | 2017-02-01 | 中山大学 | 一种基于特征尺寸约束的三维服装变形方法及其系统 |
CN106570223A (zh) * | 2016-10-19 | 2017-04-19 | 武汉布偶猫科技有限公司 | 一种基于Unity3D服装仿真人体碰撞球的提取 |
CN106407605B (zh) * | 2016-11-01 | 2019-06-25 | 南京大学 | 一种三维服装的粒子化计算机动态仿真方法 |
CN107134001B (zh) * | 2017-05-26 | 2020-05-15 | 厦门黑镜科技有限公司 | 用于3d动画材料的图像处理的方法、装置、设备及介质 |
CN107578323B (zh) * | 2017-10-10 | 2020-05-12 | 中国科学院合肥物质科学研究院 | 三维真实人体在线虚拟试衣方法 |
CN108053480B (zh) * | 2017-12-08 | 2021-03-19 | 东华大学 | 基于逆向工程技术的三维全尺度着装人体网格构建方法 |
CN110136271A (zh) * | 2018-02-08 | 2019-08-16 | 真玫智能科技(深圳)有限公司 | 一种布人碰撞的方法及装置 |
CN109002571B (zh) * | 2018-05-08 | 2022-12-09 | 杭州电子科技大学 | 基于等几何弹簧质点模型的布料动态仿真方法 |
CN109829232B (zh) * | 2019-01-30 | 2022-11-25 | 中北大学 | 基于随机森林算法的分层布料模拟方法 |
CN112417746B (zh) * | 2020-11-18 | 2022-11-25 | 中北大学 | 一种基于神经网络预测碰撞检测的方法 |
CN112981909B (zh) * | 2021-02-08 | 2022-03-29 | 广州海关技术中心 | 一种服装面料褶皱回复性能评价系统及其方法 |
CN112862957B (zh) * | 2021-02-19 | 2024-04-19 | 南京大学 | 一种基于约束投影的gpu并行试衣仿真方法 |
CN113435098B (zh) * | 2021-06-30 | 2022-11-15 | 西南交通大学 | 一种织物类薄层软体物质变形后形貌精确仿真方法 |
CN114662172B (zh) * | 2022-05-19 | 2022-08-16 | 武汉纺织大学 | 一种基于神经网络的服装布料动态仿真模拟方法 |
CN115861503A (zh) * | 2022-09-29 | 2023-03-28 | 北京字跳网络技术有限公司 | 虚拟物体的渲染方法、装置、设备及存储介质 |
CN116510295B (zh) * | 2023-07-03 | 2023-09-12 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366054A (zh) * | 2013-06-28 | 2013-10-23 | 北京航空航天大学 | 一种基于质点弹簧模型的衣物接缝处理和褶皱增强方法 |
-
2015
- 2015-06-19 CN CN201510347177.3A patent/CN104881557B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366054A (zh) * | 2013-06-28 | 2013-10-23 | 北京航空航天大学 | 一种基于质点弹簧模型的衣物接缝处理和褶皱增强方法 |
Non-Patent Citations (5)
Title |
---|
Deformation constraints in a mass-spring model to describe rigid cloth behavior;Xavier Provot;《1995 Conference on Graphics Interface》;19951230;第147-154页 * |
Stable but responsive cloth;Choi K J等;《ACM Transactions on Graphics》;20021230;第21卷(第3期);第604-611页 * |
任意衣服和人体的3D试穿实时仿真;陈燕等;《计算机应用》;20140110;第34卷(第1期);摘要,第125页左栏第6段-第128页右栏第1段 * |
参数化三维人体建模与系统实现;陈淼;《中国优秀硕士学位论文全文数据库》;20150315;正文第30页第2段-第42页第1段 * |
基于物理模型的可交互的布料变形方法;汪晓斌等;《系统仿真学报》;20140930;第26卷(第9期);第2050-2055页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104881557A (zh) | 2015-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104881557B (zh) | 一种计算机中人体服装动态仿真实现方法 | |
CN105006014B (zh) | 虚拟衣物快速模拟试穿的实现方法及系统 | |
CN104008557B (zh) | 一种服装与人体模型的三维匹配方法 | |
CN104008564B (zh) | 一种人脸表情克隆方法 | |
CN107578323B (zh) | 三维真实人体在线虚拟试衣方法 | |
CN104021589A (zh) | 一种三维模拟试衣方法 | |
Magnenat-Thalmann et al. | 3d web-based virtual try on of physically simulated clothes | |
CN103366054B (zh) | 一种基于质点弹簧模型的衣物接缝处理和褶皱增强方法 | |
CN108230455A (zh) | 一种基于骨骼驱动的虚拟服装变形仿真方法 | |
CN104599305B (zh) | 一种二三维结合的动画生成方法 | |
CN106204697B (zh) | 一种布料撕裂动态模拟系统 | |
CN105427386A (zh) | 基于输入人体姿态实时生成的服装变形方法 | |
CN105069837B (zh) | 一种服装试穿模拟方法及装置 | |
CN103310478A (zh) | 一种多样化虚拟人群生成的方法 | |
CN103793552A (zh) | 一种软组织形变的局部质点弹簧模型的实时动态生成方法 | |
CN109002571B (zh) | 基于等几何弹簧质点模型的布料动态仿真方法 | |
Mesuda et al. | Virtual draping by mapping | |
CN104751514B (zh) | 穿着松紧度模拟方法及其系统 | |
CN104156502B (zh) | 一种基于位置的衣物褶皱几何生成方法 | |
CN105046738A (zh) | 服装动态三维的制作方法及制作装置 | |
CN109003319A (zh) | 角色动画中带有动力学约束的元球驱动蒙皮方法 | |
Chaudhry et al. | Character skin deformation: A survey | |
Zhong | Redressing three-dimensional garments based on pose duplication | |
TW200818056A (en) | Drivable simulation model combining curvature profile and skeleton and method of producing the same | |
CN104809287B (zh) | 穿着物分层方法及其系统、分层穿着物模拟方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |