劉亦歆 龔捷 蘭勇
摘要:柔性物體的模擬是計(jì)算機(jī)圖形學(xué)的一個(gè)研究課題,同時(shí)非常重要和前沿。在人們的日常生活中,柔性物體無(wú)處不在,處處可見,如流水、繩索、織物等,如何利用計(jì)算機(jī)高效靈活復(fù)原柔性物體在現(xiàn)實(shí)中的運(yùn)動(dòng)是計(jì)算機(jī)圖形學(xué)的挑戰(zhàn)。該文分析柔性物體仿真的兩種技術(shù)幾何模型、物理模型法的優(yōu)缺點(diǎn),以及簡(jiǎn)要介紹沖突檢測(cè)與響應(yīng)。
關(guān)鍵詞:柔性物體仿真;幾何模型;物理模型;沖突檢測(cè)
中圖分類號(hào):TP391.9 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)07-1572-03
1 概述
柔性物體仿真的技術(shù)通常可分為兩類:一是基于幾何模型法,二是基于物理模型法。而且各類技術(shù)還可相互結(jié)合。在幾何模型法中應(yīng)用最廣的的是自由變形技術(shù)。而基于物理技術(shù)的模型法是把柔性物體按照一定的規(guī)則進(jìn)行劃分,而后分析柔性物體之間以及內(nèi)部的受力情況,從而得出物體上點(diǎn)的位移情況,最后達(dá)到柔性物體的仿真的效果。物理模型的還原度較高成為了目前主要采用的模型。
2 幾何模型法
在幾何模型的各種方法中,自由變形技術(shù)是應(yīng)用最多的。自由變形技術(shù)的核心思想就是,事先定義一個(gè)可以變形的網(wǎng)格,然后再把要模擬的物體放入這個(gè)網(wǎng)格中,接著移動(dòng)網(wǎng)格中的頂點(diǎn),是的放入的物體發(fā)生形變。自由變形的優(yōu)缺點(diǎn)如表1。
把自由變形技術(shù)作為基礎(chǔ)提出很多新的方法,盡管它們?cè)诓僮鞯姆绞?、定義上與自由變形技術(shù)有諸多不同之處,但是他們的核心思想還是沒變的。既是先定義一個(gè)變形空間,然后把物體上的點(diǎn)放入這個(gè)變形空間,通過操作變形空間是的物體跟著形變,從而達(dá)到模擬的效果。
其中具有代表性的有:直接操縱的自由變形(DFFD)、基于 B-樣條基函數(shù)的 FFD、基于 NURBS 基函數(shù) FFD(NFFD)等。
2.1 DFFD
自由變形不易準(zhǔn)確控制物體的形狀,和目標(biāo)點(diǎn)的位移,為了克服這些缺點(diǎn),我們需要采用一種新的方法,于是基于直接操縱的自由變形技術(shù)便出現(xiàn)了。直接操縱的自由變形技術(shù)(DFFD)依然使用控制框架來(lái)做為變形的工具,使用 DFFD方法時(shí),使用者操作的是物體上的點(diǎn)而不是操作網(wǎng)格上的頂點(diǎn)。其中心思想是:通過選擇變形物體上的一點(diǎn),移動(dòng)到需求的位置點(diǎn),從而反推出控制頂點(diǎn)的位置變化,并計(jì)算對(duì)象上其它點(diǎn)的位置變化。直接操縱的自由變形技術(shù)的優(yōu)點(diǎn)在于容易實(shí)現(xiàn)變形物體上點(diǎn)的精確移動(dòng),缺點(diǎn)則是在該方法中控制變形區(qū)域的工具并沒有提供給用戶。
2.2 基于 B-樣條基函數(shù)的 FFD
使用B-樣條體作為控制框架,利用均勻的B-樣條函數(shù)作為基礎(chǔ)函數(shù)來(lái)控制物體的變形,但是B-樣條體具有局部性,故此這種方法易實(shí)現(xiàn)柔性物體的局部變形。
2.3 NFFD
NFFD是基于非均勻有理 B-樣條(Non-Uniform Rational B-Spline,既NURBS)的一種FDD的改進(jìn)方法。NFFD方法中用戶不僅可以控制局部變形,而且還可以對(duì)對(duì)象物體的變形微調(diào)。使用者可以依據(jù)柔性物體的形狀以及局部特性來(lái)定義不均勻的控制網(wǎng)格。但是世界坐標(biāo)中的柔性物體轉(zhuǎn)換到局部空間的變形需要計(jì)算量較大的數(shù)值分析法來(lái)求解。NFFD雖然可以定義不均勻的控制網(wǎng)格,但是仍然還是以規(guī)則的平行六面體網(wǎng)格為控制手段,所以這種控制網(wǎng)格還是難以精確的類似柔性物體的形狀,使得變型不夠直觀,并且控制的頂點(diǎn)過多,要實(shí)現(xiàn)效果需要多次的移動(dòng)控制點(diǎn),從而增加了運(yùn)算難度。
3 物理模型法
基于物理技術(shù)的模型法是把柔性物體按照一定的規(guī)則進(jìn)行劃分,而后分析柔性物體之間以及內(nèi)部的受力情況,從而得出物體上點(diǎn)的位移情況,最后達(dá)到柔性物體的仿真的效果。物理模型的還原度較高成為了目前主要采用的模型。基于這種技術(shù)提出的模型主要有:質(zhì)點(diǎn)網(wǎng)格模型、有限元模型、質(zhì)點(diǎn)-彈簧模型、邊界元模型。
3.1 質(zhì)點(diǎn)網(wǎng)格模型
質(zhì)點(diǎn)網(wǎng)格模型是把柔性物體按照拓?fù)渚匦尉W(wǎng)格劃分,柔性物體就是這些網(wǎng)格節(jié)點(diǎn)上所有質(zhì)點(diǎn)的集合。其中每個(gè)質(zhì)點(diǎn)的能量分為彈性能、彎曲能以及重力勢(shì)能,質(zhì)點(diǎn)的能量計(jì)算需要根據(jù)周圍的八個(gè)質(zhì)點(diǎn)結(jié)合起來(lái)計(jì)算,邊界的質(zhì)點(diǎn)只是周圍的點(diǎn)數(shù)不同,計(jì)算方法一樣,只是在某些特殊的頂點(diǎn)最小的能量狀態(tài)是需要獲取的,從而推斷推斷柔性物體的形狀。質(zhì)點(diǎn)網(wǎng)格模型對(duì)靜態(tài)柔性物體的仿真效果較好。
3.2 有限元模型(FEM)
有限元模型是基于彈性力學(xué)原理求解的一種物理模型。在工程中有限元是比較常見的一種處理力學(xué)問題的方法,有限元依據(jù)物體的外形、受到的外力、自身的彈性常數(shù)以及邊界條件等粗略的計(jì)算出物體內(nèi)部的位移量和受力情況。有限元模型的有點(diǎn)在于可伸縮性好,便于實(shí)現(xiàn)不同復(fù)雜度、精度在同樣的網(wǎng)絡(luò)結(jié)構(gòu)中的計(jì)算。并且此模型參數(shù)調(diào)整方便,易于實(shí)現(xiàn)材料的不同性質(zhì)。這個(gè)模型的不足點(diǎn)在于模型計(jì)算量巨大,且很復(fù)雜,處理速度較慢,不利于實(shí)時(shí)交互。
3.3 質(zhì)點(diǎn)-彈簧模型
如圖1所示,在質(zhì)點(diǎn)-彈簧模型中柔性物體的質(zhì)點(diǎn)被看成圖中網(wǎng)格的頂點(diǎn),每個(gè)頂點(diǎn)之間的實(shí)線則是存在的彈簧,各個(gè)質(zhì)點(diǎn)之間的相互作用就靠這個(gè)彈簧實(shí)現(xiàn)。當(dāng)外力作用在柔性物體上時(shí),可以認(rèn)為作用力是作用在一個(gè)質(zhì)點(diǎn)的,當(dāng)這個(gè)質(zhì)點(diǎn)在外力的作用下移動(dòng)后,由于各個(gè)質(zhì)點(diǎn)間的彈簧使得這個(gè)力也變相的作用在了周圍的質(zhì)點(diǎn)上,從而使得他們產(chǎn)生了位移,柔性物體就發(fā)生了形變,從而達(dá)到了仿真的效果。質(zhì)點(diǎn)彈簧模型簡(jiǎn)單,易建造,計(jì)算復(fù)雜度低且速度快所以交互性較好,但是同時(shí)也犧牲了真實(shí)感。
3.4 邊界元模型
邊界元模型只是需要物體表面的集合信息,不需要再把物體內(nèi)部按照單元網(wǎng)格劃分,直接使用幾個(gè)外形的表面作為計(jì)算單元即可。在求解過程中只需要計(jì)算邊界上的位移以及應(yīng)力分布。邊界元模型是一個(gè)面模型,和有限元模型不同的是計(jì)算量顯著降低,并且可以采用邊界離散技術(shù),不需要內(nèi)部網(wǎng)絡(luò)。邊界元模型的是一個(gè)基于彈性力學(xué)的連續(xù)模型,還原度比質(zhì)點(diǎn)-彈簧模型好。但是由于只考慮邊界,所以材料必須是均勻的材質(zhì)。
4 沖突檢測(cè)與響應(yīng)
沖突指的是物體不能同時(shí)占用同一個(gè)空間的事實(shí)。當(dāng)沖突發(fā)生后,物體之間就會(huì)互相排斥。在計(jì)算機(jī)仿真中如果解決沖突的問題那么就會(huì)出現(xiàn)衣服會(huì)嵌入人體的情況,所以在仿真中沖突檢測(cè)的計(jì)算花費(fèi)了大量時(shí)間。
在解決沖突問題的時(shí)候一般分為兩個(gè)階段:
1)沖突檢測(cè):判斷兩物體是否接觸。
2)沖突相應(yīng):使用物體間的交互力(一般包括兩種,一種是排斥力,使物體不能穿透,另外一種就是摩擦力阻止彼此之間相互滑動(dòng)),使物體不能穿透和滑動(dòng)。
沖突檢測(cè)是幾何問題,而沖突響應(yīng)就與建模的方法有關(guān)。
4.1沖突檢測(cè)
1)復(fù)雜性
沖突檢測(cè)的過程中一般需要檢測(cè)兩種,一種是與柔性物體的周圍物體的關(guān)系,是否發(fā)生穿透。另外一種這是由柔性物體的特征決定的,因?yàn)樗煌糠挚赡馨l(fā)生沖突,所以柔性物體還需要對(duì)自身不同部位進(jìn)行沖突檢測(cè)。柔性物體一般會(huì)被分割成很多的多邊形網(wǎng)格,因而沖突檢測(cè)就需要對(duì)分割的每個(gè)網(wǎng)格進(jìn)行計(jì)算,計(jì)算量就變得很巨大了。
2)本質(zhì)
沖突檢測(cè)實(shí)質(zhì)上分為兩個(gè)問題,第一檢測(cè)兩個(gè)或多個(gè)物體間是否發(fā)生了穿透;第二就是檢測(cè)物體是否超過極限距離。
4.2 沖突響應(yīng)
沖突相應(yīng)則是對(duì)沖突作出的反應(yīng),使得物體不能穿越。
現(xiàn)有沖突響應(yīng)的算法主要采用的是人為的添加勢(shì)場(chǎng)。既是在物體周圍設(shè)置一個(gè)斥力場(chǎng),當(dāng)接近極限距離時(shí)在斥力的作用下便是的沖突不會(huì)發(fā)生。但是因?yàn)槌饬?chǎng)是人為添加的,于是在仿真過程中便會(huì)出現(xiàn)不自然的響應(yīng)。比如會(huì)出現(xiàn)柔性物體在靜止的情況下會(huì)懸浮在物體表面的情況。
也可以采用動(dòng)量守恒來(lái)進(jìn)行沖突響應(yīng),當(dāng)柔性物體與其他物體發(fā)生沖突時(shí),根據(jù)動(dòng)量守恒定律,柔性物體會(huì)改變運(yùn)動(dòng)方向,但是這種方法也會(huì)產(chǎn)生一種被彈開的效果,影響仿真效果的真實(shí)感。
5 結(jié)論
本文對(duì)柔性物體仿真的兩種方法:一是基于幾何模型法,二是基于物理模型法。分析了兩種方法具體模型優(yōu)缺點(diǎn),以及工作原理。最后對(duì)柔性物體的沖突檢測(cè)與響應(yīng)做了簡(jiǎn)單介紹。接下來(lái)的工作就是分析現(xiàn)有的沖突算法,在現(xiàn)有的基礎(chǔ)上能作出優(yōu)化。
參考文獻(xiàn):
[1] 奇東旭,馬華東,黃心淵,徐迎慶,李華山.計(jì)算機(jī)動(dòng)畫原理與應(yīng)用[M].北京:科學(xué)出版社,1998.
[2] Knowlton K.A computer technique for producing animated movies.proc,AFIPS,1964,25:67-87.
[3] Knowlton K.Computer-produced movies.Science,1965,150(3700):1116-1120.
[4] 金小剛,鮑虎軍,彭群生.計(jì)算機(jī)動(dòng)畫綜述[J].軟件學(xué)報(bào),1997 (8)241-251.
[5] 鮑虎軍,金小剛,彭群生.計(jì)算機(jī)動(dòng)畫的算法基礎(chǔ)[M].杭州:浙江大學(xué)出版社,2000.310-367.
[6] Barr A H. Global and local deformation of solid primitives[J].Computer Graphics,1984,18(3):21-30.
[7] Sederberg T W,Parry S R.Free-Form Deformation of Solid Geometric Models[J].Computer Graphics,1992,26(2):151-160.