一種應(yīng)用于實時頭發(fā)運動仿真的碰撞修正方法
【專利摘要】本發(fā)明公開了一種應(yīng)用于實時頭發(fā)運動仿真的碰撞修正方法,該方法主要包括以下步驟:基于已有的頭發(fā)運動數(shù)據(jù)對發(fā)絲幾何關(guān)系與運動規(guī)律進行分析,將所有發(fā)絲的粒子分割為若干聚類,以提高碰撞修正的效率;對當前時刻頭發(fā)幾何形態(tài)來構(gòu)建發(fā)絲粒子之間的碰撞聯(lián)結(jié)關(guān)系,以決定粒子相互間的碰撞關(guān)系結(jié)構(gòu);基于前述得到的發(fā)絲粒子之間的碰撞關(guān)系來快速地修正粒子位置從而滿足碰撞約束。本發(fā)明首次提出了針對實時頭發(fā)運動仿真的后期碰撞處理方法,可以與現(xiàn)有的頭發(fā)運動仿真方法集成,從而提高仿真效果的細節(jié)與質(zhì)量,可應(yīng)用于實時頭發(fā)運動仿真應(yīng)用中,并具有通用性強、效率高等優(yōu)點。
【專利說明】一種應(yīng)用于實時頭發(fā)運動仿真的碰撞修正方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機運動仿真領(lǐng)域,尤其涉及對虛擬角色毛發(fā)實時運動仿真的方法。
【背景技術(shù)】
[0002]本發(fā)明相關(guān)的研究背景簡述如下:
[0003]逼真的虛擬頭發(fā)運動建模與仿真在計算機動畫、虛擬現(xiàn)實等領(lǐng)域有非常重要的應(yīng)用。從早期的完全不考慮發(fā)絲之間相互作用的工作(Rosenblum, R.E., Carlson, W.E., and Tripp,Ε.1991.Simulating the structure and dynamics of humanhair!modelling,rendering and animation.The Journal of Visualization andComputer Animation2,4,141 - 148.) (Anjyoj K.-1.,Usamij Y.,and Kuriharaj T.1992.A simple method for extracting the natural beauty of hair.1n ACM SIGGRAPHComputer Graphics,vol.26,ACM,111 - 120.)開始,頭發(fā)運動仿真一直是一個熱門的研究課題。
[0004]針對高質(zhì)量的頭發(fā)運動仿真,最常見的方法是對每個單獨的發(fā)絲進行仿真,從而獲得最為精細的運動細節(jié)。為了盡可能模擬真實世界中的發(fā)絲運動,許多研究工作針對單獨發(fā)絲的運動提出不同的運動仿真模型,如(Bertails,F(xiàn).,Audolyj B.,Canij Μ.-P.,Querleuxj B.,Leroy, F.,and Levequej J.-L.2006.Super-helices for predictingthe dynamics of natural hair.1n ACM Transactions on Graphics(TOG), vol.25,ACM,1180 - 1187.) (Sellej A., Lentinej M., and Fedkiwj R.2008.A mass spring modelfor hair simulation.ACM Trans.Graph.(SIGGRAPH2008)27, 3 (Aug.).) (Bergou, M.,WardetzkyjM.,Robinson,S.,AudolyjB.,and Grin-spun,E.2008.Discrete elasticrods.1n ACM Transactions on Graphics (TOG), vol.27,ACM,63.) (Casatij R., andBertails-DescoubesjF.2013.Super space clothoids.ACMTransaction on Graphics.)等?;谶@些發(fā)絲運動模型,許多在單獨發(fā)絲尺度上進行運動仿真并考慮復雜的頭發(fā)相互作用的方法被證明可以得到較高真實度的結(jié)果。其中,(Selle, A.,Lentine, M.,andFedkiwj R.2008.A mass spring model for hair simulation.ACM Trans.Graph.(SIGGRAPH2008) 27, 3 (Aug.).)把頭發(fā)的相互作用表示為發(fā)絲吸引力與幾何碰撞兩方面,從而實現(xiàn)發(fā)簇結(jié)構(gòu)動態(tài)變化的效果;(Mcadams, A., Selle, A., Ward, K., Sifakis, E., and Teran, J.2009.Detail preserving continuum simulation of straight hair.ACMTransactions on Graphics-T0G28, 3, 62.)提出了一個魯棒的頭發(fā)相互作用的模擬方法,通過基于流體的碰撞松弛來使得大量發(fā)絲之間的幾何碰撞變得更容易求解;(Daviet, G.,Bertails-Descoubes, F., and Boissieux, L.2011.A hybrid iterative solver forrobustly capturing coulomb friction in hair dynamics.1n ACM Transactions onGraphics (TOG), vol.30, ACM, 139.)提出了一個混合方法來魯棒地模擬發(fā)絲之間的庫侖摩擦力現(xiàn)象。但是,所有這些方法都專注于效果的質(zhì)量并需要大量的離線運算時間,使得模擬過程非常緩慢,無法用于實時應(yīng)用之中。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種應(yīng)用于實時頭發(fā)運動仿真的碰撞修正方法,該方法可基于已有的頭發(fā)運動仿真數(shù)據(jù)序列,進行實時的后期修正來處理頭發(fā)的相互碰撞從而增加運動的細節(jié)與真實感,具有很高的實用價值。
[0006]本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:一種應(yīng)用于實時頭發(fā)運動仿真的碰撞修正方法,包括如下步驟:
[0007](I)頭發(fā)聚類預(yù)處理:基于已有的頭發(fā)運動數(shù)據(jù)對頭發(fā)的幾何信息與運動規(guī)律進行分析,將所有發(fā)絲粒子分割為若干聚類用于提高碰撞修正的效率;
[0008](2)頭發(fā)相互碰撞聯(lián)結(jié)關(guān)系的構(gòu)建:對當前時刻頭發(fā)的幾何形態(tài)構(gòu)建發(fā)絲粒子之間的聯(lián)結(jié)關(guān)系結(jié)構(gòu),以決定粒子的碰撞關(guān)系;
[0009](3)發(fā)絲碰撞修正:基于前述得到的發(fā)絲粒子之間的碰撞關(guān)系,快速地修正粒子位置從而滿足碰撞約束。
[0010]本發(fā)明的有益效果是:通過高效的后期頭發(fā)碰撞關(guān)系的處理,可以實現(xiàn)對實時低質(zhì)量的頭發(fā)運動仿真結(jié)果的碰撞修正,在保持同等實時效率的同時獲得類似于高精度仿真的效果質(zhì)量,實驗證明可對數(shù)量超過十萬的虛擬人物發(fā)型實現(xiàn)實時的高質(zhì)量運動仿真,效果優(yōu)于現(xiàn)有方法,且具有通用性強、使用簡便等優(yōu)點。
【專利附圖】
【附圖說明】
[0011]圖1為碰撞修正模式的示意圖;
[0012]圖2為對直發(fā)與卷發(fā)發(fā)型的修正結(jié)果。
【具體實施方式】
[0013]本發(fā)明的核心技術(shù)是對虛擬角色發(fā)型對象基于已有的低質(zhì)量的頭發(fā)運動仿真結(jié)果進行后期碰撞修正,以此實現(xiàn)高質(zhì)量的實時頭發(fā)運動仿真,本發(fā)明一種應(yīng)用于實時頭發(fā)運動仿真的碰撞修正方法,包括如下步驟:
[0014]1.頭發(fā)聚類預(yù)處理:基于已有的頭發(fā)運動數(shù)據(jù)對頭發(fā)的幾何信息與運動規(guī)律進行分析,將所有發(fā)絲粒子分割為若干聚類用于提高碰撞修正的效率;
[0015]1.1鄰域關(guān)系分析
[0016]對目標頭發(fā)模型對象的幾何形狀構(gòu)建鄰域關(guān)系圖,圖中每個頂點代表一個發(fā)絲粒子,邊表示粒子之間的相鄰關(guān)系,初始時沒有邊。對每個發(fā)絲粒子i,靜態(tài)位置為Pi,搜索所有距離Pi小于距離閾值巧的其他發(fā)絲粒子j,即I IP1-PjI Iyr1,在鄰域關(guān)系圖中增加頂點i至IJj的邊,并計算其權(quán)值Uij如下:
[0017]Uij=- P1-Pj 2+cw
[0018]其中Cw為一較大常數(shù)來保證Uij永遠為正,本方法中令Cw=IV
[0019]1.2發(fā)絲聚類
[0020]對步驟1.1得到的鄰域關(guān)系圖將所有發(fā)絲粒子,也即圖中所有頂點分割為k個聚類,本方法通常令k=100。使用κ-way圖割方法對鄰域關(guān)系圖進行分割,最小化如下能量:[0021]
【權(quán)利要求】
1.一種應(yīng)用于實時頭發(fā)運動仿真的碰撞修正方法,其特征在于,包括如下步驟: (1)頭發(fā)聚類預(yù)處理:基于已有的頭發(fā)運動數(shù)據(jù)對頭發(fā)的幾何信息與運動規(guī)律進行分析,將所有發(fā)絲粒子分割為若干聚類用于提高碰撞修正的效率; (2)頭發(fā)相互碰撞聯(lián)結(jié)關(guān)系的構(gòu)建:對當前時刻頭發(fā)的幾何形態(tài)構(gòu)建發(fā)絲粒子之間的聯(lián)結(jié)關(guān)系結(jié)構(gòu),以決定粒子的碰撞關(guān)系; (3)發(fā)絲碰撞修正:基于前述得到的發(fā)絲粒子之間的碰撞關(guān)系,快速地修正粒子位置從而滿足碰撞約束。
2.根據(jù)權(quán)利要求1所述應(yīng)用于實時頭發(fā)運動仿真的碰撞修正方法,其特征在于,所述步驟I包括以下子步驟: (1.1)分析目標頭發(fā)模型的發(fā)絲粒子相互之間的鄰域關(guān)系,構(gòu)建發(fā)絲粒子鄰域關(guān)系圖; (1.2)基于步驟1.1得到的發(fā)絲粒子鄰域關(guān)系圖,對發(fā)絲粒子進行分割,生成一組發(fā)絲粒子聚類。
3.根據(jù)權(quán)利要求2所述應(yīng)用于實時頭發(fā)運動仿真的碰撞修正方法,其特征在于,所述步驟2包括以下子步驟: (2.1)對每一幀的當前發(fā)絲粒子構(gòu)建空間搜索加速結(jié)構(gòu); (2.2)對上一時刻的發(fā)絲關(guān)聯(lián)信息進行合法性判斷,計算當前時刻所需的鄰域搜索數(shù)量; (2.3)依據(jù)步驟2.2計算得到的鄰域搜索數(shù)量,依靠步驟2.1得到的空間搜索加速結(jié)構(gòu)進行固定數(shù)量的最近鄰搜索; (2.4)基于步驟2.3得到的鄰域搜索結(jié)果更新發(fā)絲間碰撞關(guān)系。
4.根據(jù)權(quán)利要求3所述應(yīng)用于實時頭發(fā)運動仿真的碰撞修正方法,其特征在于,所述步驟3包括以下子步驟: (3.1)基于權(quán)利要求2得到的發(fā)絲粒子聚類結(jié)果以及權(quán)利要求3得到的發(fā)絲間碰撞關(guān)系進行系統(tǒng)矩陣的構(gòu)建; (3.2)對步驟3.1構(gòu)建得到的系統(tǒng)矩陣進行增量式的Cholesky分解計算; (3.3)基于步驟3.2得到的Cholesky分解計算結(jié)果進行迭代求解,得到碰撞修正后的發(fā)絲粒子位置。
【文檔編號】G06F17/50GK103942376SQ201410145693
【公開日】2014年7月23日 申請日期:2014年4月11日 優(yōu)先權(quán)日:2014年4月11日
【發(fā)明者】周昆, 柴蒙磊, 鄭昌熙 申請人:浙江大學