CN106548392A - 一种基于webGL技术的虚拟试衣实现方法 - Google Patents
一种基于webGL技术的虚拟试衣实现方法 Download PDFInfo
- Publication number
- CN106548392A CN106548392A CN201610956727.6A CN201610956727A CN106548392A CN 106548392 A CN106548392 A CN 106548392A CN 201610956727 A CN201610956727 A CN 201610956727A CN 106548392 A CN106548392 A CN 106548392A
- Authority
- CN
- China
- Prior art keywords
- skeleton
- action
- dimensional
- value
- manikin
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0641—Shopping interfaces
- G06Q30/0643—Graphical representation of items or shoppers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/16—Cloth
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于webGL技术的虚拟试衣实现方法,当用户给定体型特征参数时,做到使人体模型的体型逼近用户给定的体型;当用户选择服饰时,给定方案来消除服饰模型与人体模型的穿透问题;给定方案使用户可以改变人体模型的姿势或动作;本发明所提及的方案,能够实现webGL平台下的虚拟试衣,且复杂度较低,可以表现出优秀的试衣效果。
Description
技术领域
本发明涉及一种基于webGL技术的虚拟试衣实现方法,属于三维仿真技术领域。
背景技术
在网络通信日益发达的今天,电子商务已经成为我们生活中不可分割的一部分,并且服装在电子商务交易中扮演着很重要的角色。但是,由于网购的局限性,购买者买到的服装经常会出现不合适的情况,导致购衣体验差、退货率极高等问题。由此推动了网上虚拟试衣系统的研究,虚拟试衣系统是一种应用于服装电子商务的实时交互平台,对促进服饰行业、鞋类、箱包以及化妆品等行业发展具有很大作用。
但是,目前来说,大部分的虚拟试衣系统因为使用了三维场景,需要下载独立的软件,有的软件需要安装在电脑上,有的需要安装在手机上,使用起来不够方便。
目前网页端的虚拟试衣系统大部分需要使用其他的插件进行支持,用户第一次使用前需要在本机上安装指定的插件,之后才可以使用,甚至有些不擅长使用电脑的人不知道如何安装,难以使用。
WebGL(全写Web Graphics Library)是一种三维绘图标准,这种绘图技术标准可以为网页内容中的三维场景绘制提供硬件三维加速渲染。目前从全球范围来看,WebGL技术应用越来越广泛,而现在还缺少一种较为系统的基于WebGL平台的虚拟试衣解决方案。
发明内容
目的:为了克服现有技术中存在的不足,本发明提供一种基于webGL技术的虚拟试衣实现方法。
技术方案:为解决上述技术问题,本发明采用的技术方案为:
本发明效果基于WebGL平台,使用B/S架构。WebGL平台因为它能够调用系统底层的显卡,可以不借助任何插件在网页端很好的进行三维渲染,呈现出越来越火热的趋势。同时,越来越多的开发者投身于WebGL的开发,也使得网页端三维内容越来越丰富。
本发明中主要提及了三部分技术方案,分别是:体型调整,服装更换,动作变化。在实际实施时,三部分应该是相互关联的。
一种基于webGL技术的虚拟试衣实现方法,包括步骤如下:
步骤一:准备虚拟试衣的素材,包括:三维人体模型、服饰模型、服装模型对应的黑白透明贴图;
步骤二:对三维人体模型进行骨架蒙皮操作,为三维人体模型中的骨架建立一个模型,Bi=(Tx,y,Tz,Rx,Ry,Rz,Sx,Sy,Sz),i=1、2…nb,骨架模型包含nb个骨骼,并将所有骨骼Bi中的Sx、Sy、Sz三个值设置为1,作为三维人体模型的初始值;
步骤三:通过调节三维人体模型的骨架Bi,i=1、2…nb中每个骨骼的Sx、Sy、Sz三个值,来调节三维人体模型的体型;通过获得用户的体型特征参数,来确定Sx、Sy、Sz的调整值;
3a:根据体型特征参数:身高、体重、胸围、腰围、臀围,分别调节出n1组体型特征参数不同的人体模型,即n1=5;提取出n1组骨架的Bi,i=1、2…nb中的Sx、Sy、Sz三个值,作为缩放序列Pij=(Sx,Sy,Sz),i=1、2…nb,j=1、2…n1,称Pij=(Sx,Sy,Sz),i=1、2…nb,j∈[1,n1]为第j组缩放序列,并为每组缩放序列设置一个权重Wj;
3b:设体型特征参数为Feature(种类),求权重Wj:
用户输入的种类为Type1的体型特征参数的值为Feature用户输入(Type1),假设三维人体模型的原始体型特征参数的值为Feature原始(Type1);步骤三中设置的Type1的体型特征参数的值为Feature大(Type1);则权重Wj计算的公式为:
3c:根据权重Wj来调整骨架的缩放值,设dji=pji-Bi,i=1、2…nb,j=1、2…n1,使qi=Bi,i=1、2…nb来备份骨架Bi,i=1、2…nb的初始数据;操作时,设Mji=(Sx,Sy,Sz)i=1、2…nb,j=1、2…n1作为临时变量用来存储中间计算结果,计算公式如下:
Mji=wj×dji+qi,i=1、2…nb,j=1、2…n1wj∈[0,1]
分别计算Sx、Sy、Sz三个值叠加值公式如下:
将骨架Bi,i=1、2…nb中每个骨骼的Sx、Sy、Sz三个值分别更换成xi、yi、zi,完成三维人体模型的体型调节;
步骤四:通过调节三维人体模型的骨架Bi,i=1、2…nb中的Tx、Ty、Tz、Rx、Ry、Rz六个值,对三维人体模型进行动作设置,改变三维人体模型的姿态;设立n2组静态动作,通过提取骨架Bi,i=1、2…nb中的Tx、Ty、Tz、Rx、Ry、Rz值,获得n2组骨架动作序列Qij=(Tx,Ty,Tz,Rx,Ry,Rz),i=1、2…nb,j=1、2…n2,用来控制人体的静态动作变换;
步骤五:根据多个静态动作构成动态动作,设立n3组动态动作,其中每一个静态动作称为一个关键帧;设某个动态动作有n4个关键帧,其中tk为第k个关键帧的时间,从骨架Bi,i=1、2…nb中提取Tx、Ty、Tz、Rx、Ry、Rz值,并设置如下序列:
步骤六:用户选择一件服饰模型,此时三维人体模型身上已经穿着了ncloth件服饰模型(ncloth≥0);加载用户选择的服饰模型及服饰模型对应的透明贴图设q(x,y)表示新生成的透明贴图的(x,y)处的像素值,设pi(x,y)为第i个透明贴图的(x,y)处的像素值;用a表示黑色像素点,b表示白色像素点;设立运算符∩含义为“与”,运算规则如下
则新合成的透明贴图公式如下:
多张透明贴图合成后,将三维人体模型上的透明贴图更换为新合成的透明贴图,再将用户选择的服饰模型加载出来;
步骤七:三维人体模型的静态动作切换、动态动作切换、动态动作播放;在静态动作切换时,如果用户选择第j个动作Qij=(Tx,Ty,Tz,Rx,Ry,Rz),i=1、2…nbj∈[1,n2]
在更换动作时,将骨架Bi,i=1、2…nb中的Tx、Ty、Tz、Rx、Ry、Rz值替换为Qij中的Tx、Ty、Tz、Rx、Ry、Rz,表示如下:
Bi(Tx,Ty,Tz,Rx,Ry,Rz)=Qij,i=1、2…nbj∈[1,n2];
在动态动作切换时,设某个动态动作共有n4个关键帧,tl代表这个动作动画的总时长,则设如下:
其中tk为第k个关键帧的时间;在任意t时刻,通过公式tc≤t mod tl≤tc+1找到相临tc和tc+1的关键帧;之后,通过线性插值运算,获得任意给定时刻t的骨骼位移值缩放值序列:
可以通过将骨架Bi,i=1、2…nb中的Tx、Ty、Tz、Rx、Ry、Rz值替换为Q任意时刻t中的Tx、Ty、Tz、Rx、Ry、Rz,从而实现三维人体模型的动态动作切换;
在动态动作播放时,循环地执行上述获取时间t,找到相邻关键帧tc和tc+1,计算Q任意时刻t,改变骨架动作的操作,从而实现了动态动作的播放,三维人体模型也就呈现出动态的效果。
本发明所达到的有益技术效果:
本发明提出了一种基于WebGL平台的虚拟试衣解决方案,使得浏览器端的虚拟试衣可以不通过插件来完成,极大的提升了虚拟试衣的便捷性。
本发明的人体体型调整部分,用了骨骼蒙皮技术,利用三维动画技术来解决人体模型变形问题,能够兼顾多种细节,实现人体模型的细节调整。而且可以实现对人体模型的细节调整,可以做到调整身高、腰围、胸围、臀围、上臂围等等。
而本发明的试衣部分透明贴图算法相较于现存方式,能够解决载webGL平台下模型相互穿透的问题,使得webGL平台的虚拟试衣的显示效果大大提升。化复杂的三维模型相交判断为黑白的透明贴图操作,优化了计算速度,性能较差的机器也能够较好执行。将透明区域渲染交由webGL底层操作,可以减少虚拟试衣系统复杂的工作量,提升渲染效果,使得系统运行的更加流畅。
本发明的动作部分明显的优点是,使衣服完全跟随人体变动,提升了仿真效果。同时,衣服不需要存储关键帧数据,减小了对计算机空间的消耗。并且关键帧动画技术的应用,使得动画流畅,没有卡顿,并且动画的播放速率只与时间t有关,与计算机性能和渲染帧率无关。
附图说明
图1为三维人体模型及与绑定的骨架示意图;
图2为基于WebGL平台虚拟试衣实现方法的操作流程图;
图3为试衣前期准备工作流程图;
图4为服饰模型穿透问题解决方法流程总图;
图5为服饰模型穿透问题解决方法流程分步图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如图1、图2所示,一种基于webGL技术的虚拟试衣实现方法,包括步骤如下:
在体型调整方面:
如图3所示,设初始人体模型与一套骨架绑定,用Bi=(Tx,Ty,Tz,Rx,Ry,Rz,Sx,Sy,Sz)表示骨架中的第i根骨骼的位移值T、旋转值R和缩放值S在x轴、y轴、z轴方向的数值。从图1中可以看到这是一个人体模型与人体模型绑定的骨架的示意图,同时该示意图的上方的箭头演示了人体模型体型调整,下方的箭头演示了人体模型姿势的调整。如果骨架共有nb根骨骼,则使用Bi=(Tx,Ty,Tz,Rx,Ry,Rz,Sx,Sy,Sz),i=1、2…nb这样一组式子来表示整个骨架。初始时骨架中的所有骨骼的缩放值均为(1,1,1)。
例:我们通过在建模软件上调节人体模型的骨架Bi,i=1、2…nb中的每个骨骼的Sx、Sy、Sz三个值,使人体模型的体型发生改变,做到仅将模型的身高调整。然后从骨架Bi,i=1、2…nb中提取出每个骨骼的Sx、Sy、Sz三个值,得到了一组新的骨骼缩放数据,表示为Pi=(Sx,Sy,Sz),i=1、2…nb。
我们为身高调节的骨骼缩放数据设置一个权重W,采用线性插值算法,使用qi=Bi(Sx,Sy,Sz),i=1、2…nb来备份骨架Bi(Sx,Sy,Sz),i=1、2…nb的初始缩放值数据,其中Bi(Sx,Sy,Sz)表示只使用骨骼Bi中的Sx、Sy、Sz三个值。设di=pi-qi,i=1、2…nb用di表示身材高的骨架缩放数据和骨架初始缩放数据之差。操作时,使用如下公式:
Bi(Sx,Sy,Sz)=w×di+qi,i=1、2…nbw∈[0,1]
通过该公式可以使用W控制人体模型的身高在它的初始高度和较高的高度之间进行线性变化。
由此原理,可以设立更多组缩放数据。比如,p1i,i=1、2…nb表示控制身高的一组缩放数据,p2i,i=1、2…nb表示控制腰围得一组缩放数据,p3i,i=1、2…nb表示控制胸围得一组缩放数据等,假设共有n1组缩放数据即最后一组缩放数据为=1、2…nb。并为每组缩放数据置一个权重wj,j∈[1,n1]。故可以用pji,i=1、2…nb,j∈[1,n1]表示第j组缩放数据,wj表示对应第j组的权重。仿照上例使用qi=Bi(Sx,Sy,Sz),i=1、2…nb来备份骨架Bi(Sx,Sy,Sz),i=1、2…nb的初始数据。使用djii=1、2…nb j=1、2…n1,记录这n1组缩放数据和骨架初始缩放值之间的差dji=pji-Bi(Sx,Sy,Sz),i=1、2…nb j=1、2…n1。
操作时,为了将各组的效果相互叠加,设Mji=(Sx,Sy,Sz),i=1、2…nb,j=1、2…n1,用来暂时存储中间的计算结果,如下公式:
Mji=wj×dji+qi,i=1、2…nb,j=1、2…n1 wj∈[0,1]
将骨架Bi,i=1、2…nb中每个骨骼的的Sx、Sy、Sz三个值分别更换成xi、yi、zi。通过修改wi,i=1、2…nb的值,就可以控制人体模型的体型。
在服装更换方面:
如图4、图5所示,服装更换方面主要采取将服装模型重叠在人体模型上对应的位置,仿真出一种衣服穿在人身上的效果。然而实际操作中经常会碰到这样的情况,服装模型与人体过于接近,导致出现人体的部分皮肤穿透了服装模型,影响了三维仿真体验。
为了解决服装更换方面出现的服装模型穿透现象,这部分我们采用如下的解决方案。
提出一种透明贴图概念,该贴图实际为一张图片,包含纯黑纯白两种颜色。借助模型的uv纹理贴图坐标,模型上的每一个点可以在透明贴图上找到一个对应的点。模型在渲染时,模型上点对应贴图上的黑色点代表模型该点透明,对应贴图上的白色代表模型该点不透明。通过这张透明贴图,可以使模型在实际渲染中,看起来有一部分是透明的。
多张透明贴图合并算法:
设q(x,y)代表新生成的透明贴图的(x,y)的像素值。设pi(x,y)为第i个透明贴图的(x,y)的像素值,假设共有ncloth+1张透明贴图。用a表示黑色像素点,用b表示白色像素点。设立运算符∩含义为“与”,运算规则如下
则多张透明贴图合并算法如下:
试穿单件服饰时透明贴图解决方案:
为所有容易发生与三维人体模型穿透的服饰模型,做一张应用于人体的透明贴图。这张贴图将人体模型被服饰模型覆盖住的部分设为透明,人体模型不被服饰模型覆盖住的部分设为不透明。在加载服装模型时,将该服饰模型对应的透明贴图加载并应用于人体模型上,使人体模型不会发生穿透。
试穿多件服装时透明贴图解决方案:
为所有容易发生与人体模型穿透的服饰模型,做一张应用于人体的透明贴图。加载多件服饰模型时,先加载这些服饰模型的对应的透明贴图,对他们的透明贴图进行多张透明贴图的合并操作,将黑色区域叠加,合成出一张新的透明贴图,然后加载这些服饰模型,把三维人体模型上的透明贴图替换为新生成的透明贴图。将多件衣服覆盖的部分都变成了透明,而没覆盖的部分依旧为不透明。
在动作变化方面:
人们在现实中试衣时,都会在镜子前摆出多种姿势,来判断衣服是否好看,与自己是否足够搭配。所以虚拟试衣方法也有相应的解决方案。
使用骨骼蒙皮的关键帧动画技术,可以概括为,在骨骼控制下,通过顶点混合动态计算蒙皮网络的顶顶点,而骨骼的运动相对于其父骨骼,并由动画关键帧数据驱动。一个骨骼动画,通常包括骨骼层次结构数据,网格(Mesh)数据,网格蒙皮(Skin)数据和骨骼的动画(关键帧)数据。
动作变化可以分为两个部分,一是静态的动作,二是动态的动作。静态的动作可以理解为是静态的pose,比如说立正的动作或扎马步的动作。动态的动作则是一个动态的过程,比如说是走猫步或跑步。
在这里将分开展示,关于静态动作的解决方案。
骨骼蒙皮动画主要与骨骼的位移值(Transition)与旋转值(Rotation)有关,我们使用Bi(Tx,Ty,Tz,Rx,Ry,Rz),i=1、2…nb表示选用了骨架Bi=(Tx,Ty,Tz,Rx,Ry,Rz,Sx,Sy,Sz),i=1、2…nb中每个骨骼的位移值和旋转值信息Tx、Ty、Tz、Rx、Ry、Rz。
为人体模型设置动作。在建模软件上通过调节人体模型的骨架Bi,i=1、2…nb中的Tx、Ty、Tz、Rx、Ry、Rz几个值,改变人体模型的姿态,可以设置人体模型的静态动作。我们从调节过静态姿势的人体模型的骨架Bi,i=1、2…nb中提取每个骨骼的位移值和旋转值信息Tx、Ty、Tz、Rx、Ry、Rz,得到一组新的人体模型姿态数据:
Qi=(Tx,Ty,Tz,Rx,Ry,Rz),i=1、2…nb
那么我们在更换新的静态动作时,可以通过如下公式来实现
Bi(Tx,Ty,Tz,Rx,Ry,Rz)=Qi,i=1、2…nb
上述解法可以使人体在各种不同的姿势之间切换,而且储存的只有一组骨骼位移值和旋转值,占用的储存空间小。
关于动态动作的解决方案:
动态动作是一个动态的过程,采用骨架蒙皮关键帧技术。如果非常快的在很多变化微小的静态动作间切换,就会产生一种动画的效果。我们继续使用Bi(Tx,Ty,Tz,Rx,Ry,Rz),i=1、2…nb表示选用骨架Bi=(Tx,Ty,Tz,Rx,Ry,Rz,Sx,Sy,Sz),i=1、2…nb中的每个骨骼的位移值和旋转值信息。而动画需要有个时间的概念。设t为从动作开始播放计算的时间,即播放一个新的动画时时间从0开始算。设某个动态动作由n4个静态动作(也可称关键帧)组成,设tk表示第k个关键帧的时间点,使用如下式子表示全部关键帧的姿态数据,即每一个关键帧时刻骨架中的所有骨骼的位移值和旋转值信息,组成下面一组动画的姿态数据。
有如下数表示所有关键帧对应的时间点tk,k=1、2…n4。
我们有了全部关键帧的姿态数据之后,播放时,在任意t时刻,有如下方式选取关键帧。设tl代表这个动作动画的总时长,t求余tl得到的结果就是动画应该放到哪个时刻,然后就去找到这个时刻在哪两个关键帧之间,假设这个时刻在tc与tc+1之间,即tc≤t mod tl≤tc+1。这样给定的任意时刻t可得到对它有影响的两个关键帧tc和tc+1。
之后通过如下的线性插值运算,获得任意给定时刻t的骨骼位移值缩放值序列。
上式意思是用线性插值得到的结果修改骨架Bi,i=1、2…nb中每个骨骼的Tx、Ty、Tz、Rx、Ry、Rz值。
故此解法可以解决人体模型动态动作时的任意时刻动作问题,能够较为流畅的描述动态动作,没有间断的地方。而且通过修改t的变化速度,还能够改变动画的播放速度。
在此之后,将衣服与人体联动起来,不然会出现人体的姿势改变了而服装的姿态未改变的情况。为了解决这类问题,我们提出了如下解决方案,为每一个服饰模型绑定一个与人体模型同样的骨架,为了使服饰模型与人体模型的姿态完全相同,我们需要保证服饰模型骨架的位移值(Transition)、旋转值(Rotation)、缩放值(Scale)与人体模型骨架的完全一致。
用Bi=(Tx,Ty,Tz,Rx,Ry,Rz,Sx,Sy,Sz),i=1、2…nb代表人体模型骨架所有骨骼的位移值、旋转值、缩放值。设共有n5件已经穿着的服饰,用Clothji=(Tx,Ty,Tz,Rx,Ry,Rz,Sx,Sy,Sz),i=1、2…nbj∈[1,n5]表示第j件服饰的骨架,联动播放动画时,Clothji=Bi,i=1、2…nbj=1、2…n5则所有服饰会跟着人体模型的动作,做出相应的动作。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (1)
1.一种基于webGL技术的虚拟试衣实现方法,其特征在于:包括步骤如下:
步骤一:准备虚拟试衣的素材,包括:三维人体模型、服饰模型、服装模型对应的黑白透明贴图;
步骤二:对三维人体模型进行骨架蒙皮操作,为三维人体模型中的骨架建立一个模型,Bi=(Tx,Ty,Tz,Rx,Ry,Rz,Sx,Sy,Sz),i=1、2…nb,骨架模型包含nb个骨骼,并将所有骨骼Bi中的Sx、Sy、Sz三个值设置为1,作为三维人体模型的初始值;
步骤三:通过调节三维人体模型的骨架Bi,i=1、2…nb中每个骨骼的Sx、Sy、Sz三个值,来调节三维人体模型的体型;通过获得用户的体型特征参数,来确定Sx、Sy、Sz的调整值;
3a:根据体型特征参数:身高、体重、胸围、腰围、臀围,分别调节出n1组体型特征参数不同的人体模型,即n1=5;提取出n1组骨架的Bi,i=1、2…nb中的Sx、Sy、Sz三个值,作为缩放序列Pij=(Sx,Sy,Sz),i=1、2…nb,j=1、2…n1,称Pij=(Sx,Sy,Sz),i=1、2…nb,j∈[1,n1]为第j组缩放序列,并为每组缩放序列设置一个权重Wj;
3b:设体型特征参数为Feature(种类),求权重Wj:
用户输入的种类为Type1的体型特征参数的值为Feature用户输入(Type1),假设三维人体模型的原始体型特征参数的值为Feature原始(Type1);步骤三中设置的Type1的体型特征参数的值为Feature大(Type1);则权重Wj计算的公式为:
3c:根据权重Wj来调整骨架的缩放值,设dji=pji-Bi,i=1、2…nb,j=1、2…n1,使qi=Bi,i=1、2…nb来备份骨架Bi,i=1、2…nb的初始数据;操作时,设Mji=(Sx,Sy,Sz)=1、2…nb,j=1、2…n1作为临时变量用来存储中间计算结果,计算公式如下:
Mji=wj×dji+qi,i=1、2…nb,j=1、2…n1 wj∈[0,1]
分别计算Sx、Sy、Sz三个值叠加值公式如下:
将骨架Bi,i=1、2…nb中每个骨骼的Sx、Sy、Sz三个值分别更换成xi、yi、zi,完成三维人体模型的体型调节;
步骤四:通过调节三维人体模型的骨架Bi,i=1、2…nb中的Tx、Ty、Tz、Rx、Ry、Rz六个值,对三维人体模型进行动作设置,改变三维人体模型的姿态;设立n2组静态动作,通过提取骨架Bi,i=1、2…nb中的Tx、Ty、Tz、Rx、Ry、Rz值,获得n2组骨架动作序列Qij=(Tx,Ty,Tz,Rx,Ry,Rz),i=1、2…nb,j=1、2…n2,用来控制人体的静态动作变换;
步骤五:根据多个静态动作构成动态动作,设立n3组动态动作,其中每一个静态动作称为一个关键帧;设某个动态动作有n4个关键帧,其中tk为第k个关键帧的时间,从骨架Bi,i=1、2…nb中提取Tx、Ty、Tz、Rx、Ry、Rz值,并设置如下序列:
步骤六:用户选择一件服饰模型,此时三维人体模型身上已经穿着了ncloth件服饰模型(ncloth≥0);加载用户选择的服饰模型及服饰模型对应的透明贴图设q(x,y)表示新生成的透明贴图的(x,y)处的像素值,设pi(x,y)为第i个透明贴图的(x,y)处的像素值;用a表示黑色像素点,b表示白色像素点;设立运算符∩含义为“与”,运算规则如下
则新合成的透明贴图公式如下:
多张透明贴图合成后,将三维人体模型上的透明贴图更换为新合成的透明贴图,再将用户选择的服饰模型加载出来;
步骤七:三维人体模型的静态动作切换、动态动作切换、动态动作播放;在静态动作切换时,如果用户选择第j个动作Qij=(Tx,Ty,Tz,Rx,Ry,Rz),i=1、2…nb j∈[1,n2]
在更换动作时,将骨架Bi,i=1、2…nb中的Tx、Ty、Tz、Rx、Ry、Rz值替换为Qij中的Tx、Ty、Tz、Rx、Ry、Rz,表示如下:
Bi(Tx,Ty,Tz,Rx,Ry,Rz)=Qij,i=1、2…nb j∈[1,n2];
在动态动作切换时,设某个动态动作共有n4个关键帧,tl代表这个动作动画的总时长,则设如下:
其中tk为第k个关键帧的时间;在任意t时刻,通过公式tc≤t mod tl≤tc+1找到相临tc和tc+1的关键帧;之后,通过线性插值运算,获得任意给定时刻t的骨骼位移值缩放值序列:
可以通过将骨架Bi,i=1、2…nb中的Tx、Ty、Tz、Rx、Ry、Rz值替换为Q任意时刻t中的Tx、Ty、Tz、Rx、Ry、Rz,从而实现三维人体模型的动态动作切换;
在动态动作播放时,循环地执行上述获取时间t,找到相邻关键帧tc和tc+1,计算Q任意时刻t,改变骨架动作的操作,从而实现了动态动作的播放,三维人体模型也就呈现出动态的效果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610956727.6A CN106548392B (zh) | 2016-10-27 | 2016-10-27 | 一种基于webGL技术的虚拟试衣实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610956727.6A CN106548392B (zh) | 2016-10-27 | 2016-10-27 | 一种基于webGL技术的虚拟试衣实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106548392A true CN106548392A (zh) | 2017-03-29 |
CN106548392B CN106548392B (zh) | 2020-08-07 |
Family
ID=58393556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610956727.6A Active CN106548392B (zh) | 2016-10-27 | 2016-10-27 | 一种基于webGL技术的虚拟试衣实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106548392B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107609946A (zh) * | 2017-09-19 | 2018-01-19 | 北京优时尚科技有限责任公司 | 一种显示控制方法及计算设备 |
CN109523345A (zh) * | 2018-10-18 | 2019-03-26 | 河海大学常州校区 | 基于虚拟现实技术的WebGL虚拟试衣系统和方法 |
CN110102048A (zh) * | 2019-03-27 | 2019-08-09 | 深圳市创梦天地科技有限公司 | 一种虚拟服装渲染方法及装置 |
CN111598656A (zh) * | 2020-05-12 | 2020-08-28 | 浙江大学 | 一种基于样例的虚拟试衣方法 |
CN111783182A (zh) * | 2020-07-07 | 2020-10-16 | 恒信东方文化股份有限公司 | 一种三维虚拟人台的建模方法及系统 |
CN113289335A (zh) * | 2021-05-25 | 2021-08-24 | 腾讯数码(深圳)有限公司 | 虚拟对象的显示方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120218262A1 (en) * | 2009-10-15 | 2012-08-30 | Yeda Research And Development Co. Ltd. | Animation of photo-images via fitting of combined models |
CN104008557A (zh) * | 2014-06-23 | 2014-08-27 | 中国科学院自动化研究所 | 一种服装与人体模型的三维匹配方法 |
CN104021584A (zh) * | 2014-06-25 | 2014-09-03 | 无锡梵天信息技术股份有限公司 | 一种骨骼蒙皮动画的实现方法 |
CN104021589A (zh) * | 2014-06-27 | 2014-09-03 | 江苏中佑石油机械科技有限责任公司 | 一种三维模拟试衣方法 |
-
2016
- 2016-10-27 CN CN201610956727.6A patent/CN106548392B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120218262A1 (en) * | 2009-10-15 | 2012-08-30 | Yeda Research And Development Co. Ltd. | Animation of photo-images via fitting of combined models |
CN104008557A (zh) * | 2014-06-23 | 2014-08-27 | 中国科学院自动化研究所 | 一种服装与人体模型的三维匹配方法 |
CN104021584A (zh) * | 2014-06-25 | 2014-09-03 | 无锡梵天信息技术股份有限公司 | 一种骨骼蒙皮动画的实现方法 |
CN104021589A (zh) * | 2014-06-27 | 2014-09-03 | 江苏中佑石油机械科技有限责任公司 | 一种三维模拟试衣方法 |
Non-Patent Citations (1)
Title |
---|
泮雯雯 等: "基于Web的网络试衣间系统", 《CNKI:计算机时代》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107609946A (zh) * | 2017-09-19 | 2018-01-19 | 北京优时尚科技有限责任公司 | 一种显示控制方法及计算设备 |
CN107609946B (zh) * | 2017-09-19 | 2020-11-06 | 北京优时尚科技有限责任公司 | 一种显示控制方法及计算设备 |
CN109523345A (zh) * | 2018-10-18 | 2019-03-26 | 河海大学常州校区 | 基于虚拟现实技术的WebGL虚拟试衣系统和方法 |
CN110102048A (zh) * | 2019-03-27 | 2019-08-09 | 深圳市创梦天地科技有限公司 | 一种虚拟服装渲染方法及装置 |
CN111598656A (zh) * | 2020-05-12 | 2020-08-28 | 浙江大学 | 一种基于样例的虚拟试衣方法 |
CN111783182A (zh) * | 2020-07-07 | 2020-10-16 | 恒信东方文化股份有限公司 | 一种三维虚拟人台的建模方法及系统 |
CN111783182B (zh) * | 2020-07-07 | 2024-03-01 | 恒信东方文化股份有限公司 | 一种三维虚拟人台的建模方法及系统 |
CN113289335A (zh) * | 2021-05-25 | 2021-08-24 | 腾讯数码(深圳)有限公司 | 虚拟对象的显示方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106548392B (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106548392A (zh) | 一种基于webGL技术的虚拟试衣实现方法 | |
CN105006014B (zh) | 虚拟衣物快速模拟试穿的实现方法及系统 | |
US10115241B2 (en) | Automatic decoration of a three-dimensional model | |
US5267154A (en) | Biological image formation aiding system and biological image forming method | |
CN107657650B (zh) | 基于Maya软件的动画模型角色绑定方法以及系统 | |
CN110111417A (zh) | 三维局部人体模型的生成方法、装置及设备 | |
CN107680167A (zh) | 一种基于用户形象的三维人体模型创建方法及系统 | |
CN107274493A (zh) | 一种基于移动平台的三维虚拟试发型人脸重建方法 | |
US8498849B1 (en) | Wrinkle simulation on fabric based on three arm joint angles | |
CN108447111B (zh) | 法线贴图的处理方法、装置、存储介质、处理器及终端 | |
WO2001035342A1 (en) | System and method for displaying selected garments on a computer-simulated mannequin | |
CN109325990A (zh) | 图像处理方法及图像处理装置、存储介质 | |
CN104063888B (zh) | 一种基于非真实感的波谱艺术风格绘制方法 | |
Chen et al. | Virtual reality interactive teaching for Chinese traditional Tibetan clothing | |
CN109102561A (zh) | 一种基于服装在线的3d混合渲染方法 | |
US20080303830A1 (en) | Automatic feature mapping in inheritance based avatar generation | |
CN110288690A (zh) | 沙盘地图中山体的生成方法及装置、存储介质、处理器 | |
Liu | Computer 5G virtual reality environment 3D clothing design | |
JP3212255B2 (ja) | 画像合成装置及び画像合成方法 | |
CN114026524B (zh) | 用于动画化人脸的方法、系统、以及计算机可读介质 | |
Gang et al. | Research on Tujia nationality's brocade three-dimensional character modeling and animation integration | |
CN106530372A (zh) | 一种帧动画的生成方法 | |
CN115035269A (zh) | 基于变分自编码器的三维服装变形预测方法 | |
AU2019100365A4 (en) | Dressing replacement system in 2D games based on machine learning | |
Yingfang et al. | Character Design of Somatic Game from Perspective of Intangible Heritage Digital Protection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |