CN103942376B - 一种应用于实时头发运动仿真的碰撞修正方法 - Google Patents
一种应用于实时头发运动仿真的碰撞修正方法 Download PDFInfo
- Publication number
- CN103942376B CN103942376B CN201410145693.3A CN201410145693A CN103942376B CN 103942376 B CN103942376 B CN 103942376B CN 201410145693 A CN201410145693 A CN 201410145693A CN 103942376 B CN103942376 B CN 103942376B
- Authority
- CN
- China
- Prior art keywords
- hair
- particle
- collision
- real
- relation
- 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
- 210000004209 hair Anatomy 0.000 title claims abstract description 114
- 238000004088 simulation Methods 0.000 title claims abstract description 29
- 238000002715 modification method Methods 0.000 title claims abstract description 10
- 239000002245 particle Substances 0.000 claims abstract description 61
- 238000012986 modification Methods 0.000 claims abstract description 19
- 230000004048 modification Effects 0.000 claims abstract description 19
- 239000011159 matrix material Substances 0.000 claims description 10
- 238000000354 decomposition reaction Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 24
- 230000000694 effects Effects 0.000 abstract description 7
- 230000008901 benefit Effects 0.000 abstract description 2
- 238000003672 processing method Methods 0.000 abstract 1
- 238000012937 correction Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000011160 research Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000003796 beauty Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000016507 interphase Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- Processing Or Creating Images (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种应用于实时头发运动仿真的碰撞修正方法,该方法主要包括以下步骤:基于已有的头发运动数据对发丝几何关系与运动规律进行分析,将所有发丝的粒子分割为若干聚类,以提高碰撞修正的效率;对当前时刻头发几何形态来构建发丝粒子之间的碰撞联结关系,以决定粒子相互间的碰撞关系结构;基于前述得到的发丝粒子之间的碰撞关系来快速地修正粒子位置从而满足碰撞约束。本发明首次提出了针对实时头发运动仿真的后期碰撞处理方法,可以与现有的头发运动仿真方法集成,从而提高仿真效果的细节与质量,可应用于实时头发运动仿真应用中,并具有通用性强、效率高等优点。
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.(SIGGRAPH2008)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.ACMTransaction on Graphics.)等。基于这些发丝运动模型,许多在单独发丝尺度上进行运动仿真并考虑复杂的头发相互作用的方法被证明可以得到较高真实度的结果。其中,(Selle,A.,Lentine,M.,andFedkiw,R.2008.A mass spring model for hair simulation.ACM Trans.Graph.(SIGGRAPH2008)27,3(Aug.).)把头发的相互作用表示为发丝吸引力与几何碰撞两方面,从而实现发簇结构动态变化的效果;(Mcadams,A.,Selle,A.,Ward,K.,Sifakis,E.,andTeran,J.2009.Detail preserving continuum simulation of straight hair.ACMTransactions on Graphics-TOG28,3,62.)提出了一个鲁棒的头发相互作用的模拟方法,通过基于流体的碰撞松弛来使得大量发丝之间的几何碰撞变得更容易求解;(Daviet,G.,Bertails-Descoubes,F.,and Boissieux,L.2011.A hybrid iterative solver forrobustly capturing coulomb friction in hair dynamics.In ACM Transactions onGraphics(TOG),vol.30,ACM,139.)提出了一个混合方法来鲁棒地模拟发丝之间的库仑摩擦力现象。但是,所有这些方法都专注于效果的质量并需要大量的离线运算时间,使得模拟过程非常缓慢,无法用于实时应用之中。
发明内容
本发明的目的在于针对现有技术的不足,提供一种应用于实时头发运动仿真的碰撞修正方法,该方法可基于已有的头发运动仿真数据序列,进行实时的后期修正来处理头发的相互碰撞从而增加运动的细节与真实感,具有很高的实用价值。
本发明的目的是通过以下技术方案来实现的:一种应用于实时头发运动仿真的碰撞修正方法,包括如下步骤:
(1)头发聚类预处理:基于已有的头发运动数据对头发的几何信息与运动规律进行分析,将所有发丝粒子分割为若干聚类用于提高碰撞修正的效率;
(2)头发相互碰撞联结关系的构建:对当前时刻头发的几何形态构建发丝粒子之间的联结关系结构,以决定粒子的碰撞关系;
(3)发丝碰撞修正:基于前述得到的发丝粒子之间的碰撞关系,快速地修正粒子位置从而满足碰撞约束。
本发明的有益效果是:通过高效的后期头发碰撞关系的处理,可以实现对实时低质量的头发运动仿真结果的碰撞修正,在保持同等实时效率的同时获得类似于高精度仿真的效果质量,实验证明可对数量超过十万的虚拟人物发型实现实时的高质量运动仿真,效果优于现有方法,且具有通用性强、使用简便等优点。
附图说明
图1为碰撞修正模式的示意图;
图2为对直发与卷发发型的修正结果。
具体实施方式
本发明的核心技术是对虚拟角色发型对象基于已有的低质量的头发运动仿真结果进行后期碰撞修正,以此实现高质量的实时头发运动仿真,本发明一种应用于实时头发运动仿真的碰撞修正方法,包括如下步骤:
1.头发聚类预处理:基于已有的头发运动数据对头发的几何信息与运动规律进行分析,将所有发丝粒子分割为若干聚类用于提高碰撞修正的效率;
1.1邻域关系分析
对目标头发模型对象的几何形状构建邻域关系图,图中每个顶点代表一个发丝粒子,边表示粒子之间的相邻关系,初始时没有边。对每个发丝粒子i,静态位置为Pi,搜索所有距离Pi小于距离阈值rl的其他发丝粒子j,即||Pi-Pj||2<rl,在邻域关系图中增加顶点i到j的边,并计算其权值uij如下:
uij=-||Pi-Pj||2+cw
其中cw为一较大常数来保证uij永远为正,本方法中令cw=rl。
1.2发丝聚类
对步骤1.1得到的邻域关系图将所有发丝粒子,也即图中所有顶点分割为k个聚类,本方法通常令k=100。使用K-way图割方法对邻域关系图进行分割,最小化如下能量:
其中uab为步骤1.1得到的发丝粒子ab之间的权值。
最终得到k个发丝粒子聚类。
2.头发相互碰撞联结关系的构建:对当前时刻头发的几何形态构建发丝粒子之间的联结关系结构,以决定粒子的碰撞关系;
2.1空间加速结构的构建
以发丝粒子为单位对当前时刻的头发模型构建kd树空间加速结构,以便在后续步骤中高效地执行固定数量的近邻搜索。
2,2时域信息重用
为减少近邻搜索的工作量提高运算效率并保证碰撞修正操作在时域上的连续性,需要对头发相互碰撞关系进行时域上的重用。令粒子相互碰撞的最大空间距离为dr,(i,j)为前一帧时刻任意一对粒子相互碰撞关系,则判断其在当前时候是否仍然满足相互碰撞关系,即是否满足||Pi-Pj2<dr,若是则在当前时刻保留该关系,若否则废弃这一关系。在判断每一前一时刻粒子碰撞关系的同时,对每一粒子维护一个当前相互碰撞关系计数ni *,令每一粒子最大允许碰撞关系数为N,在重用结束后,该粒子仍允许添加的碰撞关系数为ni=N-ni *。由于必然满足ni *≤N,因此ni≥0。
2.3新碰撞关系的构建
在步骤2.2重用得到的碰撞关系基础上,对粒子i,若其仍允许添加的碰撞关系数ni>0,则需要进行搜索以找到满足相互碰撞约束||Pi-Pj||2<dr的不大于ni个最近的新相互碰撞关系对,添加入该粒子的相互碰撞关系中。利用步骤2.1构建的所有发丝粒子的kd数空间加速结构,对每个ni>0,即当前已有碰撞关系数量未满的粒子,进行固定数量为ni个的近邻搜索,并保证已在当前碰撞关系中的邻近粒子不会被重复添加至搜索结果中。
2.3相互碰撞关系的更新
对步骤2.2中搜索得到的ni个最近粒子,判断其是否满足约束||Pi-Pj||2<dr,并将满足条件的关系对添加至该粒子的相互碰撞关系中。
3.发丝碰撞修正:基于前述得到的发丝粒子之间的碰撞关系,快速地修正粒子位置从而满足碰撞约束。
3.1系统矩阵的构建
基于步骤一得到的发丝粒子的聚类,对每个聚类构造碰撞修正问题的系统矩阵如下:
Px=q
其中Px=q为修正问题,x为待求的修正后发丝粒子位置,x*为修正前已知的粒子位置,M为对角质量矩阵,m为聚类中的粒子数量,s为与聚类粒子相关的碰撞关系对数量,h为运动仿真的时间步长,Ai为表示碰撞关系对(i,j)长度为m的向量,其i位与j位分别为1与-1,其他位为0,Si为表示第i个碰撞关系对的长度为s的向量,其i位为1,其他位均为0。I3为单位对角矩阵。对当前未修正发丝粒子位置x*以及步骤二得到的相互碰撞关系,构建系统矩阵P。
3.2增量式矩阵分解
为快速进行碰撞修正问题的解算,使用Cholesky分解方法对系统矩阵进行预先的分解。令上一时刻的系统矩阵为P*,并已知其Cholesky分解结果以及相比其变化的粒子碰撞关系对(包括增加与减少),可以使用CHOLMOD进行增量式Cholesky矩阵分解,得到更新后的分解结果。
3.3迭代碰撞修正
碰撞修正用最小二乘方法求解用以优化如下二次系统能量:
其中mi为粒子质量,k为弹簧胡克系数,h为时间步长,p为粒子位置,dr为弹簧方向。
为进行快速的近似求解,基于步骤3.2得到的各聚类系统矩阵的Cholesky分解结果,进行迭代式的碰撞修正如下:
(1)初始时令当前解,即修正结果等于修正前粒子位置,x=x*;
(2)依次独立地在各个聚类内部进行修正求解,对聚类外部的粒子位置设置其边界条件等同于上一次迭代的结果;
(3)一次迭代完成后更新当前修正结果x*;
(4)不断迭代步骤2,3一定次数,本方法固定使用4次。
修正完成后的x即为最终的碰撞修正结果。
实施实例
发明人在一台配备Intel Core i7-3770中央处理器,NVidia GTX760图形处理器及32GB内存的机器上实现了本发明的实施实例。发明人采用所有在具体实施方式中列出的参数值,得到了附图中所示的所有实验结果。所有结果的头发模型包括大于100000个发丝,每个单独的发丝都表示为一条由大于25个粒子相连构成的线段。在实际渲染过程中,这些发丝都通过几何着色器扩展成与屏幕对齐的多边形带进行实时渲染,并考虑了环境光照明以及阴影。
发明人对包括直发、卷发、长发、短发等多种发型进行了试验,结果表明本方法能良好应用于不同类型的头发模型上,且能保证较好的效率,碰撞修正过程对大约150000发丝的发型能保证小于20毫秒的运算时间,同时得到接近高精度离线运动仿真的效果。
Claims (4)
1.一种应用于实时头发运动仿真的碰撞修正方法,其特征在于,包括如下步骤:
(1)头发聚类预处理:基于已有的头发运动数据对头发的几何信息与运动规律进行分析,将所有发丝粒子分割为若干聚类用于提高碰撞修正的效率;
(2)头发相互碰撞联结关系的构建:对当前时刻头发的几何形态构建发丝粒子之间的联结关系结构,以决定粒子的碰撞关系;
(3)发丝碰撞修正:基于前述得到的发丝粒子聚类结果和发丝粒子之间的碰撞关系,快速地修正粒子位置从而满足碰撞约束。
2.根据权利要求1所述应用于实时头发运动仿真的碰撞修正方法,其特征在于,所述步骤(1)包括以下子步骤:
(1.1)分析目标头发模型的发丝粒子相互之间的邻域关系,构建发丝粒子邻域关系图;
(1.2)基于步骤(1.1)得到的发丝粒子邻域关系图,对发丝粒子进行分割,生成一组发丝粒子聚类。
3.根据权利要求2所述应用于实时头发运动仿真的碰撞修正方法,其特征在于,所述步骤(2)包括以下子步骤:
(2.1)对每一帧的当前发丝粒子构建空间搜索加速结构;
(2.2)对上一时刻的发丝关联信息进行合法性判断,计算当前时刻所需的邻域搜索数量;
(2.3)依据步骤(2.2)计算得到的邻域搜索数量,依靠步骤(2.1)得到的空间搜索加速结构进行固定数量的最近邻搜索;
(2.4)基于步骤(2.3)得到的邻域搜索结果更新发丝间碰撞关系。
4.根据权利要求3所述应用于实时头发运动仿真的碰撞修正方法,其特征在于,所述步骤(3)包括以下子步骤:
(3.1)基于权利要求2得到的发丝粒子聚类结果以及权利要求3得到的发丝间碰撞关系进行系统矩阵的构建;
(3.2)对步骤(3.1)构建得到的系统矩阵进行增量式的Cholesky分解计算;
(3.3)基于步骤(3.2)得到的Cholesky分解计算结果进行迭代求解,得到碰撞修正后的发丝粒子位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410145693.3A CN103942376B (zh) | 2014-04-11 | 2014-04-11 | 一种应用于实时头发运动仿真的碰撞修正方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410145693.3A CN103942376B (zh) | 2014-04-11 | 2014-04-11 | 一种应用于实时头发运动仿真的碰撞修正方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103942376A CN103942376A (zh) | 2014-07-23 |
CN103942376B true CN103942376B (zh) | 2017-01-04 |
Family
ID=51190044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410145693.3A Active CN103942376B (zh) | 2014-04-11 | 2014-04-11 | 一种应用于实时头发运动仿真的碰撞修正方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103942376B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016127421A1 (zh) * | 2015-02-15 | 2016-08-18 | 浙江大学 | 一种适用于头发和物体碰撞的实时运动仿真方法 |
CN104679577B (zh) * | 2015-02-15 | 2018-02-02 | 浙江大学 | 一种适用于头发和物体碰撞的实时运动仿真方法 |
CN106407605B (zh) * | 2016-11-01 | 2019-06-25 | 南京大学 | 一种三维服装的粒子化计算机动态仿真方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103035030A (zh) * | 2012-12-10 | 2013-04-10 | 西北大学 | 头发模型建模方法 |
CN103093488A (zh) * | 2013-02-02 | 2013-05-08 | 浙江大学 | 一种虚拟发型插值及渐变动画生成方法 |
-
2014
- 2014-04-11 CN CN201410145693.3A patent/CN103942376B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103035030A (zh) * | 2012-12-10 | 2013-04-10 | 西北大学 | 头发模型建模方法 |
CN103093488A (zh) * | 2013-02-02 | 2013-05-08 | 浙江大学 | 一种虚拟发型插值及渐变动画生成方法 |
Non-Patent Citations (2)
Title |
---|
single-view hair modeling for portrait manipulation;Chai M,etc;《ACM Transactions on Graphics》;20120731;第31卷(第4期);全文 * |
表面网格控制的快速毛发建模;柴蒙磊等;《计算机辅助设计与图形学学报》;20120815;第24卷(第8期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103942376A (zh) | 2014-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107103113B (zh) | 面向神经网络处理器的自动化设计方法、装置及优化方法 | |
Spillmann et al. | An adaptive contact model for the robust simulation of knots | |
CN103699715A (zh) | 一种基于光滑粒子流体动力学和非线性有限元的流固耦合方法 | |
CN102681972A (zh) | 一种利用GPU加速格子-Boltzmann的方法 | |
CN110135584A (zh) | 基于自适应并行遗传算法的大规模符号回归方法及系统 | |
CN110032868A (zh) | 基于机器学习来确定程序代码特性 | |
Husselmann et al. | Simulating species interactions and complex emergence in multiple flocks of boids with gpus | |
CN105183993A (zh) | 一种电磁轨道炮综合仿真平台及方法 | |
Bartel et al. | An experimental evaluation of multilevel layout methods | |
CN102915448B (zh) | 一种基于AdaBoost的三维模型自动分类方法 | |
CN103942376B (zh) | 一种应用于实时头发运动仿真的碰撞修正方法 | |
CN106934157A (zh) | 基于支持向量机和多体动力学仿真的高压断路器识别方法 | |
Rungjiratananon et al. | Chain shape matching for simulating complex hairstyles | |
Wu et al. | Real-time hair mesh simulation | |
CN105630458A (zh) | 一种基于人工神经网络的乱序处理器稳态下平均吞吐率的预测方法 | |
CN103942090B (zh) | 一种数据驱动的实时头发运动仿真方法 | |
Lu et al. | Modeling and simulation of aircraft assembly line based on quest | |
CN106250928A (zh) | 基于图形处理单元的并行逻辑回归方法及系统 | |
CN117396922A (zh) | 用于操纵和转移计算机模拟毛发的方法和系统 | |
CN105653638A (zh) | 一种运动检索方法和装置 | |
Yang et al. | Physically-based tree animation and leaf deformation using CUDA in real-time | |
CN112560326A (zh) | 压力场的确定方法及装置 | |
Diehl | Modeling and simulation of cracks and fractures with peridynamics in brittle materials | |
CN104679577B (zh) | 一种适用于头发和物体碰撞的实时运动仿真方法 | |
CN110163981A (zh) | 一种基于运动相似性的引导发丝提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |