本發明屬于虛擬現實技術和計算機圖形學領域,特別是基于圖像頭發建模結果的仿真領域,具體的說是對基于圖像頭發建模結果進行物理仿真,生成動態頭發運動序列,包括生成三維靜態頭發模型、自適應的浮動切線匹配以及動態頭發仿真,主要應用于數字游戲、三維影視動畫及化妝廣告等領域。
背景技術:
頭發建模和仿真是計算機圖形學領域重要的研究內容之一。當前,一種頭發建模方式是基于物理的方式,但由于在物理方程中存在大量的參數,因此很難產生期望的發型;另一種頭發建模方式是基于圖像的方式。典型的基于圖像的頭發建模方式都是通過方向場重建頭發模型,此類方法能夠生成內部分布相對真實的頭發模型,但頭發模型外部發絲與頭發照片差異較大。大部分基于圖像的頭發建模結果通過三維點序列表示,這種表示方式不能應用于動態頭發仿真。在傳統的超級螺旋線頭發模型中,頭發以超級螺旋線形式表示,能夠適用于動態頭發仿真。
一、基于圖像的頭發建模
近期,一些研究者從多張照片重建三維頭發模型,主要包括(wei,y.,ofek,e.,quan,l.andshum,h.2005.modelinghairfrommultipleviews.acmtransactionsongraphics(tog),24,3,816-820)(paris,s.,chang,w.,kozhushnyan,o.i.,jarosz,w.,matusik,w.,zwicker,m.anddurand,f.2008.hairphotobooth:geometricandphotometricacquisitionofrealhairstyles.acmtransactionsongraphics(tog),27,3,30)(luo,l.,li,h.andrusinkiewicz,s.2013.structure-awarehaircapture.acmtransactionsongraphics(tog),32,4,76)。他們基于三角化規則生成一個方向場,之后從方向場中追蹤生成頭發模型。這類方法由于沒有考慮頭發的外部結構,重建的發型不能很好的保留頭發外部結構,也不能保證發根及發絲的分布符合真實。
二、基于物理的頭發仿真
早期的頭發仿真方法(ken-ichianjyo,yoshiakiusami,andtsuneyakurihara.1992.asimplemethodforextractingthenaturalbeautyofhair.acmsiggraphcomputergraphics,26,111-120)沒有考慮發絲之間的交互碰撞等影響。許多近期的研究成果(florencebertails,basileaudoly,marie-paulecani,bernardquerleux,fredericleroy,andjean-lucleveque.2006.super-helicesforpredictingthedynamicofnaturalhair.acmtransactionsongraphics(tog),vol.25.acm,1180-1187)(andrewselle,michaellentine,andronaldfedkiw.2008.amassspringmodelforhairsimulation.acmtransactionsongraphics(tog),27,64.)嘗試捕捉真實世界中的頭發特性。當前chai等人(mengleichai,changxizheng,andkunzhou.2016.adaptiveskinningforinteractivehair-solidsimulation.ieeetransactionsonvisualizationandcomputergraphics.)提出了一種自適應的使用基于發絲的頭發蒙皮模型仿真頭發和固體之間的特性。當前頭發仿真面臨的主要困難是使用簡單的頭發幾何準確的初始化頭發模型。本發明利用自適應的浮動切線匹配算法將靜態頭發建模結果轉化為基于物理的頭發模型,從而應用于動態頭發仿真,具有轉換速度快、仿真逼真度高等優勢。
技術實現要素:
本發明要解決的技術問題為:克服現有技術的不足,提供一種面向基于圖像頭發建模的自適應浮動切線匹配方法,該方法既能生成內外真實的三維靜態頭發模型,又能快速將靜態頭發建模結果轉換為基于物理的頭發模型,用于動態頭發仿真,具有較高的實用價值。
本發明解決上述技術問題所采用的技術方案是:面向基于圖像頭發建模的自適應浮動切線匹配方法,分為3個階段:
第1階段,生成三維靜態頭發模型,該階段首先從多視點采集的靜態頭發圖像出發,生成帶方向的三維發絲段,之后生成混合方向場,并構建三維靜態頭發模型,該階段分為2個步驟:
(1)從帶方向的三維發絲段出發,構建混合方向場,該混合方向場由表面結構方向場、內部方向場、內部距離場和生長方向場共四個方向場組成;
(2)依據混合方向場,構建發絲生長規則,生成三維靜態頭發模型;
第2階段,基于第1階段的結果,使用自適應的浮動切線匹配方法,生成基于物理的頭發模型,該階段分為3個步驟:
(1)從第1階段生成的靜態頭發模型中,提取簡化的頭發模型,使用自適應算法求得每根發絲對應的發絲段數目n;
(2)根據發絲段數目n,將簡化頭發模型中的每根發絲平均分為n段,得到n+1個斷點,經釋放斷點操作后得到n段連續的螺旋弧;
(3)對每一段螺旋弧求解其對應的物理參數,從而得到基于物理的頭發模型;
第3階段,基于第2階段的結果構建拉格朗日運動方程,進行動態頭發仿真,生成動態頭發運動序列。
本發明與現有技術相比的優點在于:
(1)本發明在生成三維靜態頭發模型中,使用了混合方向場,通過發絲生長規則,使得生成的三維頭發模型不僅發根和內部發絲分布符合物理真實,而且使得發型外部發絲分布與采集的頭發圖像更加相似。
(2)本發明在將幾何模型轉化為基于物理的頭發模型中,使用自適應的浮動切線匹配方法,能夠快速、準確轉換幾何模型,生成基于物理的頭發模型。
(3)本發明在動態頭發仿真中,從靜態頭發模型的平衡狀態出發,構建拉格朗日動態運動方程,不僅考慮重力、空氣阻力,還考慮發絲間的碰撞摩擦力,生成逼真的動態頭發運動序列。
總之,本發明既能生成真實的三維靜態頭發模型,又能將該頭發模型轉換為基于物理的頭發模型,同時還能應用于動態頭發仿真,生成逼真的動態頭發運動序列。
附圖說明
圖1是本發明一種面向基于圖像頭發建模的自適應浮動切線匹配方法流程圖;
圖2是本發明生成的三維靜態頭發模型結果圖,其中,圖2(a)為長直發型建模結果,圖2(b)長波浪發型建模結果;
圖3是本發明針對不同發型的動態頭發運動序列效果圖,其中,圖3(a)為長直頭發搖頭運行序列,圖3(b)為長波浪發型風吹運行序列。
具體實施方式
下面結合附圖與實例對本發明作進一步詳細描述:
如圖1所示,本發明的具體步驟如下(虛線框內步驟為已有技術):
1、從多視點采集的靜態頭發圖像出發生成混合方向場。
首先利用已有技術從采集的靜態頭發圖像出發生成帶方向的三維發絲段頭發模型。之后,從該三維發絲段頭發模型出發,生成追蹤頭發生長的混合方向場,步驟如下:
第一步,由三維發絲段頭發模型數據
第二步,從三維發絲段頭發模型
第三步,將三維發絲段頭發模型
第四步,內部距離場i是標量場,在三維網格體中,頭模型包含的網格點處值為0,發絲經過的網格點處值為1,網格邊界處內部距離場的值設置為此網格點到
第五步,定義生成的混合方向場為:h=αssd+αvv+αi▽i+αoog,其中:αs,αv,αi和αo為分別對應于每一個場的動態權重。
2、構建三維靜態頭發模型
使用保留結構的混合方向場h,從均勻分布的發根出發,構建發絲生長規則,逐點生長發絲并生成三維靜態頭發模型,其步驟如下:
第一步,對每根發絲
第二步,新生長的點pi重復生長,直到滿足下列終止條件之一:(i)新生長的點pi超出了頭發體i(pi)>ibound,其中ibound取值為1.1;(ii)生長的發絲
第三步,按上述單根發絲生長規則,對所有發根點追蹤生成發絲,構建三維頭發模型。所得到的三維頭發模型如圖2所示,其中圖2(a)為長直發型建模,圖2(b)為長波浪發型建模結果。
3、求解發絲段數目
首先利用已有技術從生成的三維頭發模型中提取簡化的頭發幾何模型,之后對簡化的頭發模型中的每根發絲求解發絲段數目,該方法步驟為:
第一步,根據發絲長度l判斷發絲段數目n,若發絲長度l小于lmin,則n=nmin,若發絲長度l大于lmax,則n=nmax,在本方法中,各參數取值分別為:nmax=25,nmin=3,lmax=80cm,lmin=5cm;
第二步,除去第一步中情況外,按照自適應求解發絲段數目算法求解發絲段數目,首先求解近似的發絲段數目n為:
4、釋放斷點
釋放斷點得到共螺旋弧的n條螺旋弧,該方法步驟如下:
第一步,根據求解得到的發絲段數目n將發絲切割為等長的n段,得到n+1個斷點{p0,p1,...,pn}以及斷點處對應的切線{t0,t1,...,tn};
第二步,釋放斷點{p0,p1,...,pn}到新位置處
第三步,
第四步,受約束的最小化問題可以描述為:
5、求解物理參數
得到共螺旋弧的n條螺旋弧后,分別求得每段螺旋弧對應的物理參數,該方法具體步驟為:
第一步,在自適應框架中描述一段螺旋弧r和其切線t,自適應框架通過初始點p0處切線t0和darboux矢量ω描述;
第二步,定義frenet框架{t,n,b},并滿足
第三步,定義一段螺旋弧r及其上位置s處切線t為:
切線,ω是darboux矢量ω的數值,
第四步,通過插值算法求解螺旋弧r對應的物理參數,對所有發絲段得到每段螺旋弧對應的物理參數后,即可得到一個基于物理的頭發模型。
6、動態頭發仿真
對基于物理的頭發模型進行動態頭發仿真,包括以下子步驟:
第一步,根據求解物理參數步驟中得到的廣義坐標q(離散的曲率和撓率),定義拉格朗日運動方程為:
第二步,定義動態方程中總的外部力f包含重力、粘滯力和摩擦接觸力,f=ρsg+fc-νr',其中ρs是螺旋弧單位長度的線密度,r'是r對時間t的導數,g是重力加速度,fc是摩擦接觸力,ν是對空氣的粘滯系數;
第三步,將各項代入拉格朗日運動方程,得到廣義坐標q的顯示運動方程為:
本發明說明書中未作詳細闡述的內容屬于本領域專業技術人員公知的現有技術。
以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。