柔性織物動態(tài)仿真_第1頁
柔性織物動態(tài)仿真_第2頁
柔性織物動態(tài)仿真_第3頁
柔性織物動態(tài)仿真_第4頁
柔性織物動態(tài)仿真_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、柔性織物動態(tài)仿真柔性織物動態(tài)仿真 關(guān)鍵技術(shù)研究關(guān)鍵技術(shù)研究報告人:劉 真2008年9月內(nèi)容提綱內(nèi)容提綱選題背景與選題意義織物仿真相關(guān)問題的研究基于圖形硬件的織物仿真與碰撞檢測 選題背景與選題意義選題背景與選題意義在人們的日常生活中,織物隨處可見,服裝更占據(jù)著人們生活中的重要地位。對織物進行逼真模擬以及對具有更廣泛意義的柔性物體的動態(tài)仿真技術(shù)的深入研究,必將帶動其他相關(guān)領(lǐng)域的發(fā)展,如電腦動畫,電腦娛樂等。研究三維織物動態(tài)仿真技術(shù)時,不僅要考慮織物的幾何形變,而且要考慮到其物理性能,同時,還要融合計算機圖形學(xué),計算機動畫,計算幾何,微分方程數(shù)值解,彈性力學(xué)等多門專業(yè)學(xué)科的知識和技術(shù),對這一問題的研

2、究已不僅僅是單純的學(xué)科應(yīng)用問題,更是對學(xué)科理論的實踐與證明。選題背景與選題意義 織物仿真相關(guān)問題的研究織物仿真相關(guān)問題的研究模擬仿真技術(shù)是指遵循相似原理(幾何、環(huán)境及性能相似),用模型(物理模型或數(shù)學(xué)模型)代替實際系統(tǒng)進行試驗和研究。用于建立織物模擬仿真模型的方法很多,這些方法可主要可以分為:(1)幾何方法(2)物理方法(3)混合方法 織物模型的簡單說明 (彈簧質(zhì)點模型) 彈簧質(zhì)子模型的基本思想主要是把一塊織物劃分為 m x n的矩形網(wǎng)格,每個網(wǎng)格結(jié)點是一個虛擬質(zhì)點,每個質(zhì)點用彈簧相連,彈簧無質(zhì)量且其長度不能為零。相鄰質(zhì)點的連接有三種方式。連接質(zhì)點i,j和i+1,j+1、連接質(zhì)點i+1,j和i

3、,j+1的彈簧,叫做“剪切彈簧”;連接質(zhì)點i,j和i+2,j、連接質(zhì)點i,j和i,j+2的彈簧,叫做“彎曲彈簧”;連接質(zhì)點i , j和i+1,j、連接質(zhì)點i,j和i,j+1的彈簧,叫做“結(jié)構(gòu)彈簧”。這三種“彈簧”結(jié)構(gòu),分別對應(yīng)了,三種在織物運動中的作用力。對動力學(xué)求解的說明在質(zhì)點彈簧模型中,根據(jù)牛頓動力學(xué)原理,質(zhì)點i , j隨時間運動的加速度、速度、位移可以表示如下:式中 為時間間隔, 為質(zhì)點i , j在任意時刻t所受到的合力, 為質(zhì)點在任意時刻t的加速度,Vi,j(t)為質(zhì)點在i , j在任意時刻t的速度, 為質(zhì)點 i , j在任意時刻t的位置。織物動感模擬過程中,初始狀態(tài)已知,方程求解過程

4、就成為數(shù)值求解中的常微分方程的初值問題。 tttvtPttPttttvttvtFmttjijijijijijijiji)()()()()()()(1)(,_,_,_,_,_,_,_,_t)(,_tFjiji,_)(,_tPji常用求解方法對于常微分方程有一套成熟經(jīng)典的求解方法(1)歐拉法;(2)中值法;(3)四階龍格庫塔法。 歐拉法:這種方法數(shù)值求解簡單,精度不夠,其局部截斷為O(h2),實際效率低。中值法:這種方法的局部截斷誤差達(dá)到了O (h3)。每次迭代都需要通過兩次力學(xué)求導(dǎo)獲得與時間步長有關(guān)的二次精確解。該方法還需建立兩個存儲結(jié)構(gòu)來存儲狀態(tài)向量。四階龍格庫塔法:其局部截斷誤差達(dá)O (h5

5、)。在數(shù)值求解中,盡管每一步的計算量大,但因為允許采用較大步長,總的計算量反而減小。四階龍格一庫塔法精度高,穩(wěn)定性能好,在實際中得以廣泛應(yīng)用。積分方法10X10質(zhì)點網(wǎng)格所需時間(S) 20X20質(zhì)點網(wǎng)格所需時間(S)歐拉積分31.2846.03中點積分39.2059.33四階龍格庫塔積分42.7067.42系統(tǒng)設(shè)置如下:結(jié)構(gòu)彈簧剛性常數(shù)4,結(jié)構(gòu)彈簧阻尼0.6;剪切彈簧常數(shù)4,剪切彈簧阻尼0.6;彎曲彈簧常數(shù)2.4,彎曲彈簧阻尼0.8,仿真步長0.01。 質(zhì)子質(zhì)子彈簧模型的超彈性問題彈簧模型的超彈性問題 所謂超彈性問題,把仿真的織物上約束點固定住,然后將其自然下垂,將會發(fā)現(xiàn)約束點處的彈簧會拉得很

6、長,甚至?xí)^100%,這種過度拉伸的現(xiàn)象就是織物動感模擬中的“高彈性”效應(yīng)。事實上,真實的織物是不會這樣拉伸的,拉得超出一定的限度就會被撕裂。 質(zhì)子彈簧模型假定質(zhì)子之間的力學(xué)關(guān)系為簡單的線性關(guān)系,在這個模型中,彈簧的力學(xué)關(guān)系是簡單的線性。真實的織物不但不存在“高彈性”效應(yīng),它們的變形產(chǎn)生的彈力是非線性的,當(dāng)變形加大時,彈力會急劇增加。一般來織物的形變不會超過10%,亞麻、粗斜紋棉布等織物變形率還應(yīng)更小。 )(01LLkF在本文中采用了一種較為簡單的校正策略,采用非線性的力學(xué)公式來近似織物的非線性力。 這里K為彈簧的彈性系數(shù),Dist為彈簧兩端的粒子之間的距離,restLen為彈簧的自然長度。

7、 )0 . 1/(9 . 0tan(restLenDistkF同時,調(diào)整彈簧兩端的質(zhì)子速度,將質(zhì)子在沿彈簧方向上的分量和設(shè)為零。以避免彈簧的“高彈性”問題進一步發(fā)生。10X10質(zhì)子彈簧網(wǎng)格。結(jié)構(gòu)彈簧剛性常數(shù)4,結(jié)構(gòu)彈簧阻尼0.6;剪切彈簧常數(shù)4,剪切彈簧阻尼0.6;彎曲彈簧常數(shù)2.4,彎曲彈簧阻尼0.8;仿真步長0.01;求解方法為,四階龍格庫塔法。不難看出質(zhì)點彈簧模型中的“超彈性”問題已經(jīng)得到明顯改善。 基于圖形硬件的織物仿真與碰撞檢測計算機圖形學(xué),從誕生的那天起,就與硬件有著緊密的聯(lián)系。由于圖形學(xué)的高計算量要求,圖形硬件的早期研究主要集中于專有硬件設(shè)備的研制。隨著圖形硬件的發(fā)展,圖形硬件的

8、功能早已經(jīng)今非昔比,并已經(jīng)具備了可編程的能力。 目前可編程的兩個點就是頂點處理和片元處理。頂點處理涉及在各個頂點發(fā)生的操作,尤其是變換和光照。片元是各個像素的數(shù)據(jù)結(jié)構(gòu),是通過圖形圖元的柵格化創(chuàng)建的。片元包含了更新幀緩沖區(qū)中的一個單獨位置所需要的全部數(shù)據(jù)。片元處理是由在各個片元基礎(chǔ)上發(fā)生的操作,尤其是在從紋理內(nèi)存讀取和在各個片元上應(yīng)用于紋理值的操作組成。 采用圖形硬件來做通用計算以下的主要優(yōu)勢:(1)高效的并行性。(2)高密集的運算。GPU通常具有128位 或256位位寬.(3)超長圖形流水線。圖形處理單元通用計算的一般步驟:(1)將需要運算的數(shù)據(jù)以一定方式轉(zhuǎn)化為紋理數(shù)據(jù)。(2)編寫頂點、片元著

9、色器代碼。(3)繪制簡單幾何模型,觸發(fā)GPU運算。(4)讀取GPU渲染(GPU的渲染過程,就是GPU的運算過程)后的紋理數(shù)據(jù),得出結(jié)果。基于基于GPU的織物動態(tài)仿真實現(xiàn)的織物動態(tài)仿真實現(xiàn)1967年,Verlet在研究Lennard-Jones液體的性質(zhì)時提出了著名的Verlet算法.對每一個粒子之間的運動使用Verlet方法來作求解方式。在Verlet方法中每一個粒子的新位置在固定的時間間隔 內(nèi), 其中 是粒子在時刻的位置, 是在時刻時受到的合力,m為粒子的質(zhì)量.tmtFtttPtPttP/ )()()(2)(2)(tP)(tF利用Verlet方法求解織物運動方程,其中不出現(xiàn)質(zhì)點速度信息,是一

10、個時間與位置的推導(dǎo)關(guān)系。其表述了離散點隨時間的位置變化關(guān)系。速度是隱式得出的,算法穩(wěn)定。Verlet方法中間的交換信息少,易于GPU實現(xiàn).假定連接各個質(zhì)點之間的彈簧有著無限的剛性,也就是說,質(zhì)子之間的距離是相對固定的。使用松馳法技術(shù)來調(diào)整織物中每個質(zhì)子的距離。質(zhì)子和之間的距離調(diào)整用下式表示: dPPDist),(21)(*),(/1 (12211PPPPDistds)(*),(/1 (12212PPPPDistds1P2P對于織物與碰撞體之間的碰撞問題,本節(jié)中假定織物是與一個簡單的球體進行的碰撞。對于質(zhì)點與球體之間的約束可以較為簡單,主要就是對質(zhì)子到球心之間的距離與球體半徑之間的判斷。如果距離

11、小于半徑,則質(zhì)子進入球體內(nèi)部,則需要進行質(zhì)子位置調(diào)整。 下面給出整個GPU仿真的步驟:在每一個仿真時間步長 內(nèi)。(1)對于所有質(zhì)子,如果其不是固定質(zhì)子,則根據(jù)下式計算新的位置。for(迭代次數(shù)) (2)然后對,新生成的質(zhì)子位置,進行松弛法調(diào)整。 P1: P2: (3)最后調(diào)整質(zhì)子與約束幾何之間的位置,如果有質(zhì)子進入到約束幾何體內(nèi)部則將其位置,校正到幾何體表面。_對于第二步和第三步可以進行互換,調(diào)整順序不影響校正效果。可以對(2)(3)組合進行多次。但會影響仿真速度。tmtFtttPtPttP/ )()()(2)(2)(*),(/1 (12211PPPPDistds)(*),(/1 (12212

12、PPPPDistds將織物質(zhì)子的位置存入三個大小為的紋理中,這三個紋理循環(huán)使用。一個紋理存儲老的位置信息,一個用于存放當(dāng)前的位置,第三個用于記錄計算后的新位置,分別記為:texture_old ,texture_cur,texture_new。 三個紋理循環(huán)使用。對于約束計算由于有9種約束,分別為:質(zhì)點和碰撞球體;質(zhì)點和周圍質(zhì)點之間的八個方向上的距離約束;再加上進行Verlet積分運算,計算一幀數(shù)據(jù),至少要進行10遍繪制。每一次繪制進行一次相應(yīng)的GPU運算,下一次的運算,以當(dāng)前新產(chǎn)生的紋理作為輸入,進行下一步的運算,如此反復(fù)迭代10次。織物大小CPU仿真運算一次所花時間GPU仿真運算一次所花時

13、間20200.019秒0.250秒40400.170秒0.350秒5125122.630秒1.021秒102410246.312秒1.554秒對于規(guī)模較小的織物仿真來說采用CPU進行有一定的優(yōu)勢,但隨著織物質(zhì)點的數(shù)目的增加,GPU仿真的速度就大大優(yōu)于CPU。在織物較簡單的時候,CPU仿真算法要優(yōu)于GPU,這是由于GPU的渲染流水線、紋理訪問等額外計算不可忽略;隨著織物復(fù)雜度的增加,GPU的效率要明顯高于CPU的效率,這是圖形硬件的并行流計算的特性造成的,而CPU則由于缺少優(yōu)化的對于流數(shù)據(jù)的并行處理失去了計算優(yōu)勢;隨著場景復(fù)雜度的增加,CPU的效率降低很快,而GPU則保持很好的算法穩(wěn)定性,這也是

14、圖形硬件的優(yōu)勢。 基于圖形硬件的織物碰撞檢測碰撞檢測的基本思想 1)判斷運動的路徑中是否有物體。 2)是否有其它物體占有了相同的空間。OpenGL提供3 種操作模式:渲染模式、選擇模式和反饋模式其中渲染模式是OpenGL 的正常模式。在渲染模式下,所要繪制的幾何圖元被光柵化,并在計算成位圖像素后,被送到幀緩存中。選擇模式下,用戶定義選擇視景體,OpenGL 將落在這個視景體之內(nèi)的物體名稱存儲在一個堆棧中。通過返回這個堆棧中的物體名稱,可以確定拾取到的物體。此時, OpenGL不發(fā)送光柵化的圖像到幀緩存,而只是根據(jù)用戶定義的特殊視景體,把繪制的物體生成拾取記錄.由于沒有執(zhí)行光柵化,該模式下運行效

15、率很高。反饋模式下,OpenGL 需要將繪制的幾何圖元反饋到一個反饋內(nèi)存中,比如圖元的頂點坐標(biāo)、顏色等。 下面給出對織物質(zhì)點網(wǎng)格本文所述算法進碰撞檢測的具體過程:1) 定義觀察點和選擇視景體。選定一個織物網(wǎng)格在t時刻的一個質(zhì)點的坐標(biāo)為觀察點的坐標(biāo),記為P ( X0 , Y0 , Z0 ) ,質(zhì)點在t時刻的速度為V(V_x ,V_y , V_z),以這個觀察點為中心定義一個截面積為0. 0001 0. 0001,前后截面位于觀察點兩側(cè)各為1.0 的選擇視景體。視景體的前后截面定義在觀察點兩側(cè),可以從2個方向觀察目標(biāo)多面體模型。注意要定義一個截面積遠(yuǎn)小于模型三角片大小的視景體,盡量拾取到較少的三角

16、片,通常保證只拾取到一個三角片。 2) 創(chuàng)建名稱堆棧將約束模型的所有三角片放到已定義的視景體中進行渲染。建立的視景體用模型視點矩陣和投影矩陣對場景中約束模型的頂點進行變換,同時裁剪掉任何位于視景體之外的圖元。由于目標(biāo)多面體模型的三角片數(shù)目較大,為三角片命名時適宜采用指向三角片對象的指針。指針的值代表所指對象的實際存儲空間的地址,具有惟一性,而且通過該指針可以直接找到所指對象,便于以后查詢該三角片。3) 命中信息的獲取與視景體相交的三角片將導(dǎo)致一次選擇命中。命中記錄由三項組成,依次為命中記錄發(fā)生時名稱堆棧中的名稱數(shù),記錄的命中的所有頂點的最大和最小窗口Z坐標(biāo), 以及命中發(fā)生時名稱堆棧的內(nèi)容。 選

17、擇緩存區(qū)從選擇模式切換回繪圖模式時,函數(shù)返回該選擇緩存區(qū)拾取記錄的數(shù)目,即: hits =glRender(GL_RENDER);當(dāng)hits不為0,就表明視景體與目標(biāo)多面體模型三角片相交。因此通過查看各命中記錄的三角片名,即可確定相交的三角片,一般只有一個三角片被命中,這樣就得到了沿觀察方向距離觀察點最近的目標(biāo)三角片。分別計算點在t時刻與 到平面的有符號距離。如果與同號,則說明質(zhì)點在的運動時間內(nèi)沒有與任合約束模型的三角面片相碰撞;如果與異號則說明質(zhì)點在的運動時間內(nèi)與約束模型的三角面片相碰撞。如果發(fā)生碰撞,則要記錄下當(dāng)前質(zhì)點的編號與當(dāng)前面片的三個頂點的坐標(biāo),為下一步的織物碰撞響應(yīng)做準(zhǔn)備。在碰撞響應(yīng)中,將會根據(jù)記錄下來的信息,對發(fā)生碰撞的的質(zhì)點作位置和速度上的調(diào)整,以使其的運動滿足動力學(xué)方程與空間

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論