CN104679577B - 一种适用于头发和物体碰撞的实时运动仿真方法 - Google Patents
一种适用于头发和物体碰撞的实时运动仿真方法 Download PDFInfo
- Publication number
- CN104679577B CN104679577B CN201510081331.7A CN201510081331A CN104679577B CN 104679577 B CN104679577 B CN 104679577B CN 201510081331 A CN201510081331 A CN 201510081331A CN 104679577 B CN104679577 B CN 104679577B
- Authority
- CN
- China
- Prior art keywords
- hair
- model
- collision
- target
- interpolation
- 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
- Processing Or Creating Images (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种实时头发物体碰撞运动仿真方法,该方法基于少量预计算训练数据,对虚拟发型生成自适应简化模型,用于实时选取与插值,并进行碰撞修正,从而实现实时高质量头发物体碰撞运动仿真。该方法主要包括如下步骤:1)简化模型预计算:基于预计算仿真数据,选取代表发丝并生成简化模型;2)实时运动仿真与插值:对实时仿真的代表发丝进行聚类,选取简化模型并进行插值;3)碰撞修正:进行碰撞检测并将修正力作用于代表发丝以修正碰撞情况。本发明首次提出了实时头发物体碰撞仿真方法,在大大减少计算耗时的同时达到与离线仿真类似的效果,可对复杂角色发型实现高质量碰撞运动仿真,优于现有方法,具有通用性强、使用简便等优点。
Description
技术领域
本发明涉及计算机运动仿真领域,尤其涉及对虚拟角色头发进行实时运动仿真的方法。
背景技术
本发明相关的研究背景简述如下:
逼真的虚拟头发运动建模与仿真在计算机动画、虚拟现实等领域有非常重要的应用。从早期的完全不考虑发丝之间相互作用的工作(Rosenblum,R.E.,Carlson,W.E.,andTripp,E.1991.Simulating the structure and dynamics of human hair:modelling,rendering and animation.The Journal of Visualization and Computer Animation2,4,141–148.)(Anjyo,K.-I.,Usami,Y.,and Kurihara,T.1992.A simple method forextracting the natural beauty of hair.In ACM SIGGRAPH Computer Graphics,vol.26,ACM,111–120.)开始,头发运动仿真一直是一个热门的研究课题。
针对高质量的头发运动仿真,最常见的方法是对每个单独的发丝进行仿真,从而获得最为精细的运动细节。为了尽可能模拟真实世界中的发丝运动,许多研究工作针对单独发丝的运动提出不同的运动仿真模型,如(Bertails,F.,Audoly,B.,Cani,M.-P.,Querleux,B.,Leroy,F.,and Leveque,J.-L.2006.Super-helices for predicting thedynamics of natural hair.In ACM Transactions on Graphics(TOG),vol.25,ACM,1180–1187.)(Selle,A.,Lentine,M.,and Fedkiw,R.2008.A mass spring model forhair simulation.ACM Trans.Graph.(SIGGRAPH 2008)27,3(Aug.).)(Bergou,M.,Wardetzky,M.,Robinson,S.,Audoly,B.,and Grin-spun,E.2008.Discrete elasticrods.In ACM Transactions on Graphics(TOG),vol.27,ACM,63.)(Casati,R.,andBertails-Descoubes,F.2013.Super space clothoids.ACM Transaction on Graphics.)等。基于这些发丝运动模型,许多在单独发丝尺度上进行运动仿真并考虑复杂的头发相互作用的方法被证明可以得到较高真实度的结果。其中,(Selle,A.,Lentine,M.,andFedkiw,R.2008.A mass spring model for hair simulation.ACM Trans.Graph.(SIGGRAPH 2008)27,3(Aug.).)把头发的相互作用表示为发丝吸引力与几何碰撞两方面,从而实现发簇结构动态变化的效果;(Mcadams,A.,Selle,A.,Ward,K.,Sifakis,E.,andTeran,J.2009.Detail preserving continuum simulation of straight hair.ACMTransactions on Graphics-TOG 28,3,62.)提出了一个鲁棒的头发相互作用的模拟方法,通过基于流体的碰撞松弛来使得大量发丝之间的几何碰撞变得更容易求解;(Daviet,G.,Bertails-Descoubes,F.,and Boissieux,L.2011.Ahybrid iterative solver forrobustly capturing coulomb friction in hair dynamics.In ACM Transactions onGraphics(TOG),vol.30,ACM,139.)提出了一个混合方法来鲁棒地模拟发丝之间的库仑摩擦力现象。但是,所有这些方法都专注于效果的质量并需要大量的离线运算时间,使得模拟过程非常缓慢,无法用于实时应用之中。
另一类相关方法更专注于高效的头发运动仿真,通过采用多种简化表示来加速仿真以及相互作用的解算。其中一个常用的思路是基于流体的保持体积、局部运动相似性等特性,采用流体来隐式地处理头发交互作用。例如,(Hadap,S.,and Magnenat-Thalmann,N.2001.Modeling dynamic hair as a continuum.In Computer Graphics Forum,vol.20,Wiley Online Library,329–338.)利用流体仿真模型来求解头发的自碰撞现象;(Bando,Y.,Chen,B.-Y.,and Nishita,T.2003.Animating hair with loosely connectedparticles.In Computer Graphics Forum,vol.22,Wiley Online Library,411–418.)将头发表示为弱相关的粒子,并通过类似流体的方法对其进行运动仿真;(Petrovic,L.,Henne,M.,and Anderson,J.2005.Volumetric methods for simulation and renderingof hair.Pixar Animation Studios.)针对风格化发型的运动仿真,使用空间体结构来对发丝速度密度等进行滤波来模拟相互作用;(Muller,M.,Kim,T.-Y.,and Chentanez,N.2012.Fast simulation of inextensible hair and fur.In Workshop on VirtualReality Interaction and Physical Simulation,The Eurographics Association,39–44.)也采用类似方法来快速模拟发丝相互排斥效果;(Mcadams,A.,Selle,A.,Ward,K.,Sifakis,E.,and Teran,J.2009.Detail preserving continuum simulation ofstraight hair.ACM Transactions on Graphics-TOG 28,3,62.)也采用了混合流体求解方法来加强仿真效果。
与本方法关系最密切的一个思路是使用聚集发丝模型,这类模型通过少量引导发丝的插值来表示所有最终发丝并在体网格(Tariq,S.,and Bavoil,L.2008.Real timehair simulation and rendering on the gpu.In ACM SIGGRAPH 2008talks,ACM,37.)或使用简化几何体(例如三角带(Chang,J.T.,Jin,J.,and Yu,Y.2002.A practical modelfor hair mutual interactions.In Proceedings of the 2002ACM SIGGRAPH/Eurographics symposium on Computer animation,ACM,73–80.)、圆柱体(Choe,B.,Choi,M.G.,and Ko,H.-S.2005.Simulating complex hair with robust collisionhandling.In Proceedings of the 2005ACM SIGGRAPH/Eurographics symposium onComputer animation,ACM,153–160.)、球体(Iben,H.,Meyer,M.,Petrovic,L.,Soares,O.,Anderson,J.,and Witkin,A.2013.Artistic simulation of curly hair.InProceedings of the 12th ACM SIGGRAPH/Eurographics Symposium on ComputerAnimation,ACM,63–71.))等来处理发丝的自碰撞。另外,自适应的发丝聚集模型(Bertails,F.,Kim,T.-Y.,Cani,M.-P.,and Neumann,U.2003.Adaptive wisp tree:amultiresolution control structure for simulating dynamic clustering in hairmotion.In Proceedings of the 2003 ACM SIGGRAPH/Eurographics symposium onComputer animation,Eurographics Association,207–213.)(Ward,K.,and Lin,M.C.2003.Adaptive grouping and subdivision for simulating hair dynamics.InComputer Graphics and Applications,2003.Proceedings.11th Pacific Conferenceon,IEEE,234–243.)(Ward,K.,Lin,M.C.,Joohi,L.,Fisher,S.,and Macri,D.2003.Modeling hair using level-of-detail representations.In ComputerAnimation and Social Agents,2003.16th International Conference on,IEEE,41–47.)通过在特定情况下增加运动细节但不对效率产生太大影响来进一步拓展这一类方法。所有这一类启发式模型实质上都是在效果与效率上的折衷,无法保证在大幅度减小计算开销的同时能够达到类似于高精度仿真的效果,因此通常其质量会受到较大影响。
最近,一个基于运动简化模型的头发实时运动仿真方法(Chai,M.,Zheng,C.,andZhou,K.2014.A Reduced Model for Interactive Hairs.ACM Transactions onGraphics,2014,33(4))可以做到实时的头发运动仿真,但是无法准确处理与物体的精细碰撞。
发明内容
本发明的目的在于针对现有技术的不足,提供一种适用于头发和物体碰撞的实时运动仿真方法。
本发明的目的是通过以下技术方案来实现的:一种实时头发物体碰撞运动仿真的方法,其特征在于,包括如下步骤:
(1)简化模型的预计算生成:对目标头发模型基于离线运动仿真数据选取代表发丝,并计算所有的基于代表发丝蒙皮插值的简化模型;
(2)实时运动仿真与插值:实时进行步骤(1)代表发丝的运动仿真,并选取步骤(1)中符合场景物体碰撞情况的简化模型,插值得到目标头发模型的所有发丝;
(3)碰撞修正:对步骤(2)的目标头发模型的所有发丝进行碰撞检测,并通过双向修正的方式将碰撞修正作用在步骤(1)的代表发丝上以此修正目标头发模型,得到修正后的目标头发模型的所有发丝。
进一步地,所述步骤(1)包括如下子步骤:
(1.1)根据目标头发模型录制训练头部运动序列Tf,基于录制的训练头部运动序列Tf,使用通用的头发运动仿真技术对目标头发模型进行离线的运动仿真,并进行对齐,得到目标头发模型的训练运动仿真数据Hf;
(1.2)利用步骤(1.1)中得到的目标头发模型的训练运动仿真数据Hf,使用稀疏编码方法优化得到一组稀疏基M以及线性组合系数α,使得这些稀疏基通过线性组合可以近似且稀疏地重构训练运动仿真数据Hf,并从目标头发模型中选取同样数量的代表发丝G拟合这些稀疏基,并对目标头发模型的每一个发丝s在目标头发模型的所有代表发丝G中选取其影响代表发丝Gs;
(1.3)利用步骤(1.1)中得到的目标头发模型的训练运动仿真数据Hf,步骤(1.2)中得到的目标头发模型的代表发丝G以及目标头发模型中每个发丝的影响代表发丝Gs,通过Gs的不同组合来构建目标头发模型中每个发丝s的所有简化模型m,每个简化模型使用Gs中的部分代表发丝Gs m,通过Gs m的蒙皮插值来重构发丝;使用蒙皮权值优化方法计算每个简化模型的蒙皮插值权值wg→s,使得使用此权值进行重构得到的发丝最近似拟合目标头发模型的训练运动仿真数据Hf。
进一步地,所述步骤(2)包括如下子步骤:
(2.1)对步骤(1.2)得到的目标头发模型的代表发丝G利用质量弹簧模型进行实时的运动仿真,同时考虑外力,与场景物体的碰撞以及自身发丝间的作用,得到代表发丝运动仿真结果Gt;
(2.2)基于步骤(2.1)得到的目标头发模型的代表发丝运动仿真结果Gt,计算任一对代表发丝(i,j)之间的包括位置与速度在内的运动相似度d(i,j),并检测两者相连路径上与场景中物体的碰撞情况,基于这些结果得到代表发丝之间的运动一致性,并以此对代表发丝进行聚类,使得每一个聚类内的代表发丝之间均符合运动一致性;
(2.3)基于步骤(2.2)得到的代表发丝聚类,对目标头发模型的每个发丝,从步骤(1.3)得到的其所有简化模型中选取符合代表发丝聚类,并与当前简化模型最为接近的一个简化模型mt;
(2.4)基于步骤(2.3)得到的目标头发模型的每个发丝选取的简化模型mt,按照步骤(1.3)中计算得到的影响代表发丝Gs m以及插值蒙皮权值wg→s使用步骤(2.1)得到的代表发丝运动仿真结果进行插值得到该发丝的当前位置,从而得到目标头发模型的当前形态Ht。
进一步地,所述步骤(3)包括如下子步骤:
(3.1)对步骤(2.4)得到的目标头发模型的当前形态Ht,对其每个发丝的当前位置与场景物体进行碰撞检测,并计算其碰撞修正力Is(i),包括其大小与方向;
(3.2)将步骤(3.1)得到的目标头发模型的每个发丝粒子的碰撞修正力Is(i),根据步骤(2.3)选取的该发丝当前的简化模型mt中的蒙皮插值权值wg→s,投影至步骤(1.2)得到的目标头发模型的代表发丝G上,优化得到每个代表发丝的碰撞修正力使得其通过当前简化模型的插值结果与原碰撞修正力Is(i)相似;
(3.3)使用步骤(3.2)投影到目标头发模型的代表发丝G上的碰撞修正力作用于其运动仿真过程中,使得修正后的代表发丝根据步骤(2.3)选取的该发丝当前的简化模型进行插值后的新目标头发模型Ht *与场景物体的碰撞情况得到缓解。
本发明的技术方案概括为:
1提出了一个用于头发物体碰撞的自适应简化模型。通过基于离线计算的头发运动仿真数据进行预计算,选取代表发丝并对每个发丝生成基于蒙皮插值的自适应简化模型,使得根据简化模型可以快速从实时代表发丝运动仿真结果重构目标头发模型形态;
2一个考虑与物体碰撞的简化模型的实时选取与插值方法。可以对实时运动仿真得到的代表发丝根据运动形态以及碰撞情况进行聚类,并按照聚类选取每个发丝的简化模型并进行插值,得到感知碰撞的目标头发模型的当前形态;
3一个双向的头发物体碰撞修正方法。基于先前插值得到的目标头发模型进行碰撞检测并将碰撞修正力反投影至代表发丝,进行修正后插值得到的新目标头发模型能够缓解与场景物体的碰撞情况。
本发明的有益效果是:通过构建头发运动的自适应简化模型并进行实时的模型选择以及双向碰撞修正,可以有效降低运动仿真的计算开销,大大提高仿真效率,同时保证与高精度仿真的相似度。本发明首次提出了针对人物头发模型的数据驱动的头发物体碰撞实时运动仿真方法,在大大减少运动仿真耗时的同时可以达到与完全离线仿真十分类似的效果,可对数量超过十万的人物发型实现实时的高质量碰撞运动仿真,效果优于现有方法,且具有通用性强、使用简便等优点。
附图说明
图1是使用本方法的运动仿真结果以及其中两个位置的放大图,(a)为总体结果图,(b)为(a)中标记a区域的放大图,(c)为(a)中标记b区域的放大图;
图2是使用现有方法的运动仿真结果以及其中两个位置的放大图,(a)为总体结果图,(b)为(a)中标记a区域的放大图,(c)为(a)中标记b区域的放大图;
图3是本方法应用在虚拟人直发模型实时交互仿真上的结果,(a)、(b)、(c)、(d)分别为四个实施例的仿真结果图;
图4是本方法应用在虚拟人卷发模型实时交互仿真上的结果,(a)、(b)、(c)、(d)分别为四个实施例的仿真结果图。
具体实施方式
本发明的核心技术是对目标头发模型基于训练运动仿真数据构建自适应的运动简化模型并以此实现在线模型选取以及碰撞修正,以实现高质量的实时头发物体碰撞运动仿真。
本发明提出了一种适用于头发和物体碰撞的实时运动仿真方法,包括以下步骤:
(1)简化模型的预计算生成:基于离线计算的训练运动仿真数据进行预计算,选取目标头发模型的代表发丝并对每个发丝生成自适应简化模型的所有情况;具体包括以下子步骤:
(1.1)头部运动序列的准备以及头发训练运动仿真数据的生成:为保证训练数据的多样性,针对目标头发模型,预先录制8段长度约为200帧的头部运动序列,表示为Tf,其中f为帧号。
对目标头发模型,首先生成其静态下的头发形态H*,作为头发对象的参考形态。随后,基于步骤(1.1)得到的头部运动序列,对目标头发模型使用质量弹簧模型(Selle,A.,Lentine,M.,and Fedkiw,R.2008.A mass spring model for hair simulation.ACMTrans.Graph.(SIGGRAPH 2008)27,3(Aug.).)进行离线的高精度运动仿真得到训练运动仿真数据,表示为H′f,其中f为帧号。对H′f进行变换操作,使其对齐至与H*同样的头部位置,即令最终的训练运动仿真数据Hf为H′f/Tf。
(1.2)代表发丝的选取:通过如下基于稀疏编码(Sparse Coding)的优化方法选取训练仿真数据Hf中最具代表性的一组稀疏基M,使得所有训练仿真数据Hf能为这些基的线性组合来近似拟合,拟合公式如下:
其中H为所有时刻训练仿真数据Hf的串联,α为线性组合的参数,β为稀疏能量权重,为目标头发对象的其中任意一个发丝对象。本方法对典型的目标头发对象的优化数量为400的稀疏基M,并使用固定的β值0.15。本方法使用(Mairal,J.,Bach,F.,Ponce,J.,and Sapiro,G.Online learning for matrix factorization and sparse coding.TheJournal of Machine Learning Research 11,19–60.)的方法来优化求解这个稀疏编码问题。
优化得到稀疏基M后,将其投影至H中最近的发丝,即计算出H中与稀疏基M中每个基空间距离最小的发丝,从而选定代表发丝集合G。同时,对每个发丝s选取其影响代表发丝Gs,即所有线性组合参数α不为零的稀疏基对应的代表发丝。
(1.3)简化模型的构建:使用步骤(1.2)得到的训练仿真数据和选取得到的代表发丝集合G,对每个发丝s计算其影响代表发丝Gs内所有简化模型。每个简化模型对应于一种Gs内的代表发丝组合情况,即对简化模型m,其使用的Gs中一部分代表发丝Gs m。
对每个简化模型m,计算Gs m中每个代表发丝的蒙皮权值,使得利用这些蒙皮权值进行插值后重构出的粒子位置最接近所有输入头发运动数据中该粒子的位置。
蒙皮权值优化能量如下:
对于发丝s上的第i个粒子,计算其蒙皮权值wg→s(i),其中与分别为该粒子在帧Hf的位置以及H*的位置,Bg(i,f)为该引导发丝在帧f相对其H*位置的刚性变换,F为所有训练运动序列的数量。同时,增加约束如下以防止过拟合:
本方法将发丝的蒙皮权值用二次项系数(a,b,c)来表示,其每个粒子的蒙皮权值由发丝的参数计算如下:
wg→s(i)=ai2+bi+c
本方法优化这些二次项系数如下:
其中,Ns为s的粒子数量。
为控制影响每个粒子的引导发丝粒子的稀疏性以保证方法的效率,增加约束使得影响每个粒子的引导发丝粒子数量不大于K。同时由于二次项拟合使得权值之和可能不再为1,本方法在计算得到蒙皮权值后进行均一化使得权值之和为1。
按如上方法,即得到了目标头发模型每个发丝的所有简化模型。
(2)实时运动仿真与插值:对实时运动仿真得到的代表发丝进行聚类并选取每个发丝的简化模型并进行插值;具体包括以下子步骤:
(2.1)代表发丝的运动仿真:基于步骤1选取的目标头发模型的代表发丝G,对其进行运动仿真,得到其在当前时刻的位置Gt。本方法使用质量弹簧模型,同时考虑发丝与物体的碰撞以及发丝之间的相互作用,包括发丝的碰撞与引力作用。
(2.2)简化模型的选择:基于步骤(2.1)计算得到的代表发丝运动仿真结果Gt,将其依照如下公式计算任意一对代表发丝(i,j)的相互运动相似度d(i,j):
其中,σ为物理仿真模拟时间步长的倒数,p为代表发丝在当前时刻的位置,v为代表发丝在当前时刻的速度,Aij与Bij分别为代表发丝在训练数据中的平均运动位置与速度偏移:
同时,本方法对任意一对代表发丝(i,j)进行路径上的碰撞检测,即判断由发丝i运动到发丝j的位置的路径上是否与场景物体发生了碰撞。
利用运动相似度d(i,j)以及碰撞关系,本方法计算代表发丝(i,j)之间的运动相关性,当d(i,j)大于一个阈值(本方法中令其为2)且没有发生路径碰撞时,则认为代表发丝(i,j)之间有相关性,反之认为其没有相关性。
利用这个相关性本方法将所有代表发丝G聚类为一系列运动相关的子集,使得每一个集合中任意一对代表发丝之间都有相关性。
将这些代表发丝的相关子集投影至目标头发对象的每一个发丝的代表发丝子集Gs上,相应地得到一系列的代表发丝剖分,每一个剖分对应于步骤1中计算得到的一个简化模型。
本方法从这些剖分对应的简化模型中选择一个最接近于上一时刻选择的简化模型,作为当前的简化模型。
(2.3)基于简化模型的插值
基于步骤(2.1)得到的当前时刻的位置Gt,使用步骤(2.2)选取的运动简化模型的蒙皮插值权值进行插值:
这样即求得了目标头发模型的当前形态。
(3)碰撞修正:基于先前插值得到的目标头发模型的当前形态与场景物体进行碰撞检测,并将碰撞修正力反投影至代表发丝的运动仿真,从而使得修正后的目标头发模型能够缓解碰撞情况;具体包括以下子步骤:
(3.1)发丝碰撞检测:对步骤2插值得到的目标头发模型的当前形态,与场景中的物体进行碰撞检测,并计算所有发丝粒子的碰撞修正力Is(i)(发丝s上第i个粒子),使得Is(i)作用在该粒子上能解决碰撞穿透问题。
(3.2)代表发丝修正力计算:基于步骤(3.1)计算得到的所有发丝的碰撞修正力,本方法将其进行优化转换至代表发丝上:
其中,Is(i)与分别为已知的所有发丝上的粒子碰撞修正力以及未知的代表发丝上的粒子碰撞修正力。本方法使用标准最小二乘方法进行优化,求得代表发丝上的粒子修正力使得在通过简化模型投影到所有发丝上后,对碰撞粒子能接近原所有发丝上的粒子碰撞修正力,同时对非碰撞粒子的影响尽量小。
(3.3)碰撞修正力的作用:将步骤(3.2)得到的代表发丝碰撞修正力作为外力作用于目标头发模型的代表发丝上,使用标准运动仿真方法进行模拟,从而使得更新后的代表发丝使用当前选取的简化模型进行插值后得到的新目标头发模型能够修正碰撞穿透现象,即为当前时刻的最终运动仿真结果。
实施实例
在一台配备Intel Core i7-3770中央处理器,NVidia GTX760图形处理器及32GB内存的机器上实现本发明的实施实例。采用所有在具体实施方式中列出的参数值,得到了附图中所示的实验结果。结果中的头发模型都由单独的发丝组成,每个发丝都表示为一条由20至25个粒子相连构成的线段。在实际渲染过程中,这些发丝都通过几何着色器扩展成与屏幕对齐的多边形带进行实时渲染,并考虑了环境光照明以及阴影。
如图1以及图2所示,与现有方法相比,本方法可以正确处理头发与物体的碰撞,解决头发与物体的穿透情况。
对包括图3所示的直发、图4所示的卷发等多种发型进行了试验,结果表明本方法能良好应用于不同类型的头发模型上,且能保证较好的效率,对大于100000发丝的发型能保证每秒20帧左右的运算速率,同时得到接近高精度离线运动仿真的效果。
Claims (3)
1.一种实时头发物体碰撞运动仿真的方法,其特征在于,包括如下步骤:
(1)简化模型的预计算生成:对目标头发模型基于离线运动仿真数据选取代表发丝,并计算所有的基于代表发丝蒙皮插值的简化模型;该步骤包括如下子步骤:
(1.1)根据目标头发模型录制训练头部运动序列Tf,基于录制的训练头部运动序列Tf,使用通用的头发运动仿真技术对目标头发模型进行离线的运动仿真,并进行对齐,得到目标头发模型的训练运动仿真数据Hf;
(1.2)利用步骤(1.1)中得到的目标头发模型的训练运动仿真数据Hf,使用稀疏编码方法优化得到一组稀疏基M以及线性组合系数α,使得这些稀疏基通过线性组合可以近似且稀疏地重构训练运动仿真数据Hf,并从目标头发模型中选取同样数量的代表发丝G拟合这些稀疏基,并对目标头发模型的每一个发丝s在目标头发模型的所有代表发丝G中选取其影响代表发丝Gs;
(1.3)利用步骤(1.1)中得到的目标头发模型的训练运动仿真数据Hf,步骤(1.2)中得到的目标头发模型的代表发丝G以及目标头发模型中每个发丝的影响代表发丝Gs,通过Gs的不同组合来构建目标头发模型中每个发丝s的所有简化模型m,每个简化模型使用Gs中的部分代表发丝Gs m,通过Gs m的蒙皮插值来重构发丝;使用蒙皮权值优化方法计算每个简化模型的蒙皮插值权值wg→s,使得使用此权值进行重构得到的发丝最近似拟合目标头发模型的训练运动仿真数据Hf;
(2)实时运动仿真与插值:实时进行步骤(1)代表发丝的运动仿真,并选取步骤(1)中符合场景物体碰撞情况的简化模型,插值得到目标头发模型的所有发丝;
(3)碰撞修正:对步骤(2)的目标头发模型的所有发丝进行碰撞检测,并通过双向修正的方式将碰撞修正作用在步骤(1)的代表发丝上以此修正目标头发模型,得到修正后的目标头发模型的所有发丝。
2.根据权利要求1所述的实时头发物体碰撞运动仿真方法,其特征在于,所述步骤(2)包括如下子步骤:
(2.1)对步骤(1.2)得到的目标头发模型的代表发丝G利用质量弹簧模型进行实时的运动仿真,同时考虑外力,与场景物体的碰撞以及自身发丝间的作用,得到代表发丝运动仿真结果Gt;
(2.2)基于步骤(2.1)得到的目标头发模型的代表发丝运动仿真结果Gt,计算任一对代表发丝(i,j)之间的包括位置与速度在内的运动相似度d(i,j),并检测两者相连路径上与场景中物体的碰撞情况,基于这些结果得到代表发丝之间的运动一致性,并以此对代表发丝进行聚类,使得每一个聚类内的代表发丝之间均符合运动一致性;
(2.3)基于步骤(2.2)得到的代表发丝聚类,对目标头发模型的每个发丝,从步骤(1.3)得到的其所有简化模型中选取符合代表发丝聚类,并与当前简化模型最为接近的一个简化模型mt;
(2.4)基于步骤(2.3)得到的目标头发模型的每个发丝选取的简化模型mt,按照步骤(1.3)中计算得到的影响代表发丝Gs m以及插值蒙皮权值wg→s使用步骤(2.1)得到的代表发丝运动仿真结果进行插值得到该发丝的当前位置,从而得到目标头发模型的当前形态Ht。
3.根据权利要求2所述的实时头发物体碰撞运动仿真方法,其特征在于,所述步骤(3)包括如下子步骤:
(3.1)对步骤(2.4)得到的目标头发模型的当前形态Ht,对其每个发丝的当前位置与场景物体进行碰撞检测,并计算其碰撞修正力Is(i),包括其大小与方向;
(3.2)将步骤(3.1)得到的目标头发模型的每个发丝粒子的碰撞修正力Is(i),根据步骤(2.3)选取的该发丝当前的简化模型mt中的蒙皮插值权值wg→s,投影至步骤(1.2)得到的目标头发模型的代表发丝G上,优化得到每个代表发丝的碰撞修正力使得其通过当前简化模型的插值结果与原碰撞修正力Is(i)相似;
(3.3)使用步骤(3.2)投影到目标头发模型的代表发丝G上的碰撞修正力作用于其运动仿真过程中,使得修正后的代表发丝根据步骤(2.3)选取的该发丝当前的简化模型进行插值后的新目标头发模型Ht *与场景物体的碰撞情况得到缓解。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510081331.7A CN104679577B (zh) | 2015-02-15 | 2015-02-15 | 一种适用于头发和物体碰撞的实时运动仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510081331.7A CN104679577B (zh) | 2015-02-15 | 2015-02-15 | 一种适用于头发和物体碰撞的实时运动仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679577A CN104679577A (zh) | 2015-06-03 |
CN104679577B true CN104679577B (zh) | 2018-02-02 |
Family
ID=53314673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510081331.7A Active CN104679577B (zh) | 2015-02-15 | 2015-02-15 | 一种适用于头发和物体碰撞的实时运动仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679577B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115294256B (zh) * | 2022-08-16 | 2023-03-28 | 北京畅游创想软件技术有限公司 | 头发处理方法、装置、电子设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093488A (zh) * | 2013-02-02 | 2013-05-08 | 浙江大学 | 一种虚拟发型插值及渐变动画生成方法 |
CN103942090A (zh) * | 2014-04-11 | 2014-07-23 | 浙江大学 | 一种数据驱动的实时头发运动仿真方法 |
CN103942376A (zh) * | 2014-04-11 | 2014-07-23 | 浙江大学 | 一种应用于实时头发运动仿真的碰撞修正方法 |
-
2015
- 2015-02-15 CN CN201510081331.7A patent/CN104679577B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093488A (zh) * | 2013-02-02 | 2013-05-08 | 浙江大学 | 一种虚拟发型插值及渐变动画生成方法 |
CN103942090A (zh) * | 2014-04-11 | 2014-07-23 | 浙江大学 | 一种数据驱动的实时头发运动仿真方法 |
CN103942376A (zh) * | 2014-04-11 | 2014-07-23 | 浙江大学 | 一种应用于实时头发运动仿真的碰撞修正方法 |
Non-Patent Citations (2)
Title |
---|
artistic simulation of curly hair;hayley iben et al;《Proceedings of the 12th ACM SIGGRAPH/Eurgraphic symposium on computer animation》;20120719;第63-71页 * |
multi-linear data-driven dynamic hair model with efficient hair-body collision handling;peng guang et al;《proceedings of the ACM SIGGRAPH/Eurographics Symposium on Computer Animation》;20120731;第295-304页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104679577A (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11928765B2 (en) | Animation implementation method and apparatus, electronic device, and storage medium | |
US11113860B2 (en) | Particle-based inverse kinematic rendering system | |
Selle et al. | A mass spring model for hair simulation | |
Pyun et al. | An example-based approach for facial expression cloning | |
Schumacher et al. | Efficient simulation of example-based materials | |
US9262857B2 (en) | Multi-linear dynamic hair or clothing model with efficient collision handling | |
Diziol et al. | Robust real-time deformation of incompressible surface meshes | |
CN103942090B (zh) | 一种数据驱动的实时头发运动仿真方法 | |
US10311623B2 (en) | Real-time animation method for hair-object collisions | |
Rungjiratananon et al. | Chain shape matching for simulating complex hairstyles | |
Chai et al. | Adaptive skinning for interactive hair-solid simulation | |
CN104268921A (zh) | 3d人脸表情控制方法及系统 | |
Wu et al. | Real-time hair mesh simulation | |
CN104679577B (zh) | 一种适用于头发和物体碰撞的实时运动仿真方法 | |
CN103942376B (zh) | 一种应用于实时头发运动仿真的碰撞修正方法 | |
Guan et al. | Multi-linear data-driven dynamic hair model with efficient hair-body collision handling | |
Sánchez-Banderas et al. | Real-time Inextensible Hair with Volume and Shape. | |
CN106910233A (zh) | 一种虚拟昆虫动画角色的运动仿真方法 | |
Cai et al. | Immersive interactive virtual fish swarm simulation based on infrared sensors | |
Jones et al. | Dynamic sprites: artistic authoring of interactive animations | |
Jia et al. | Facial expression synthesis based on motion patterns learned from face database | |
Chen | Constructing Swimming Training Model Based on Cyclic Coordinate Descent Algorithm | |
Rajendran | Understanding the Desired Approach for Animating Procedurally | |
Basori et al. | Real time physical force-driven hair animation | |
Yu et al. | A real-time 3D hair animation system for human-computer interaction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |