三維服裝試衣系統(tǒng)——碰撞檢測(cè)與響應(yīng)的研究與實(shí)現(xiàn)-畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  本科畢業(yè)論文</b></p><p>  題 目:三維服裝試衣系統(tǒng)</p><p>   ——碰撞檢測(cè)及響應(yīng)的研究與實(shí)現(xiàn)</p><p><b>  姓 名:</b></p><p>  學(xué) 院:軟件學(xué)院</p><p>&l

2、t;b>  系:軟件工程</b></p><p>  專 業(yè):軟件工程</p><p>  年 級(jí): 級(jí)</p><p><b>  學(xué) 號(hào):</b></p><p>  指導(dǎo)教師: 職稱:副教授</p><p><b> 

3、 年 月</b></p><p><b>  摘要</b></p><p>  三維服裝試衣系統(tǒng)是基于虛擬現(xiàn)實(shí)技術(shù)的一個(gè)重點(diǎn)實(shí)驗(yàn)項(xiàng)目,而碰撞檢測(cè)及響應(yīng)是該系統(tǒng)的一個(gè)重要組成部分。</p><p>  碰撞主要分為兩個(gè)部分:一是衣片與人體的碰撞,二是衣片的自碰撞。衣片與人體的碰撞檢測(cè),其目的為根據(jù)不同體型,設(shè)定衣片與人體的最佳距離,

4、以及為碰撞響應(yīng)提供先決條件。衣片的自碰撞檢測(cè),是根據(jù)衣片的懸垂等性質(zhì)來(lái)模擬真實(shí)的衣服皺褶等現(xiàn)象。</p><p>  本文先描述對(duì)衣片進(jìn)行碰撞前的準(zhǔn)備工作,包括:三角網(wǎng)格劃分、添加彈簧等。接著對(duì)布料與球體的碰撞進(jìn)行研究,并將其改進(jìn)成前后兩個(gè)衣片與人體的碰撞檢測(cè)及響應(yīng)。首先對(duì)衣片及人體進(jìn)行包圍盒劃分,其采用的方法為基于AABB包圍盒劃分;接著控制衣片的運(yùn)動(dòng),使之逐漸向人體靠近;最后檢查到衣片和人體的碰撞,并進(jìn)行碰撞

5、響應(yīng)。本文進(jìn)一步的對(duì)碰撞后的前后衣片進(jìn)行縫合,使之成為一件完整的衣服。最后將縫合后的衣片整合在同一個(gè)數(shù)組中,以便今后對(duì)衣片添加紋理、風(fēng)吹等真實(shí)效果。</p><p>  綜上所述,本論文對(duì)碰撞檢測(cè)及響應(yīng)的整個(gè)流程進(jìn)行整合概括,對(duì)每一步驟所用到的算法進(jìn)行分析試驗(yàn),并且最終將分開(kāi)的衣片合成完整的衣服,使之穿在人體上,已達(dá)到模擬現(xiàn)實(shí)的虛擬結(jié)果。</p><p>  關(guān)鍵詞: 三維試衣系統(tǒng) 碰撞

6、檢測(cè)及響應(yīng) 衣片縫合</p><p><b>  Abstract </b></p><p>  3D garment-fitting system is a focus of pilot project that based on virtual reality technology, and the collision-checking and response

7、 is an important component of this system.</p><p>  Collision includes two parts: one is the collision between cloth and body; the other is the self-collision of cloth. The first one sets up a best distance

8、between the cloth and the body for different somatotypes, and provides pre-conditions for collision-response. The second one, according to cloth's overhanging phenomena, simulates the real cloth.</p><p>

9、  At first, this paper describes the prepare work for collision-checking, such as triangle gridding partition, adding springs and so on. Then we study the collision principle between sphere and the cloth, and improve it

10、onto a collision between a body and two cloth which before and after it. At the first step, they (both body and cloth) are required to be partitioned by AABB boxes. Second, we have to control the cloth moving to the body

11、 .At last, the system checks whether the cloth comes into coll</p><p>  Furthermore, this paper describes the processes of cloth-stitching after collision so that they can become integrative clothes. Then, t

12、he system puts all the particles of cloth into an array so as to add texture, wind and other real natural effect.</p><p>  To sum up, this paper generalizes the entire processes of the collision-checking and

13、 response, analyzes the algorithm used on each step, and finally puts the clothes which are made up by several separate clothes on the model. This imitation is a vivid virtual reality effect.</p><p>  Keywor

14、ds: 3D garment-fitting system collision-checking and response cloth-stitching</p><p><b>  目錄</b></p><p><b>  第一章引言7</b></p><p>  第二章衣片劃分研究8</p>

15、;<p>  2.1 第一步 衣片網(wǎng)格劃分8</p><p>  2.2 第二步 衣片添加彈簧10</p><p>  2.3 第三步 衣片包圍盒劃分11</p><p>  2.4 第四步 人體包圍盒劃分11</p><p>  2.5 第五步 衣片向人體運(yùn)動(dòng)11</p><p>  2.6

16、實(shí)驗(yàn)效果圖11</p><p>  第三章建立層次包圍盒13</p><p>  3.1層次包圍盒概念13</p><p>  3.2 層次包圍盒約束條件13</p><p>  3.3 層次包圍盒算法分類13</p><p>  3.3.1包圍球Sphere14</p><p>

17、  3.3.2 方向包圍盒OBB14</p><p>  3.3.3 沿坐標(biāo)軸的包圍盒AABB14</p><p>  3.3.4三種包圍盒算法比較與抉擇15</p><p>  3.4 AABB包圍盒存儲(chǔ)優(yōu)化15</p><p>  3.4.1 AABB樹(shù)的構(gòu)造16</p><p>  3.4.2 優(yōu)化方法

18、16</p><p>  3.4.3 優(yōu)化后結(jié)果17</p><p>  3.4.4 人體AABB樹(shù)17</p><p>  第四章碰撞檢測(cè)18</p><p>  4.1 衣片與人體碰撞檢測(cè)18</p><p>  4.1.1 碰撞檢測(cè)原理18</p><p>  4.1.2 基

19、于AABB層次包圍盒樹(shù)的碰撞檢測(cè)算法實(shí)現(xiàn)19</p><p>  4.1.3 碰撞檢測(cè)兩大步驟19</p><p>  4.2 衣片自碰撞檢測(cè)20</p><p>  4.2.1 自碰撞檢測(cè)由來(lái)與原理21</p><p>  4.2.2自碰撞檢測(cè)的算法實(shí)現(xiàn)22</p><p>  4.3 實(shí)驗(yàn)效果圖24&l

20、t;/p><p>  4.3.1 未進(jìn)行碰撞檢測(cè)24</p><p>  4.3.2 碰撞檢測(cè)后25</p><p>  第五章碰撞響應(yīng)26</p><p>  5.1 碰撞響應(yīng)定義26</p><p>  5.2 碰撞響應(yīng)分析26</p><p>  5.3 碰撞響應(yīng)實(shí)現(xiàn)方法26&l

21、t;/p><p>  5.4 碰撞響應(yīng)效果圖27</p><p>  5.5 實(shí)驗(yàn)效果圖27</p><p>  第六章衣片縫合28</p><p>  6.1 衣片縫合原理28</p><p>  6.2 衣片縫合步驟28</p><p>  6.3 衣片縫合的算法實(shí)現(xiàn)29</

22、p><p>  6.4 實(shí)驗(yàn)效果圖30</p><p>  第七章總結(jié)與展望31</p><p><b>  7.1 總結(jié)31</b></p><p><b>  7.2 展望31</b></p><p><b>  致 謝32</b></

23、p><p><b>  參考文獻(xiàn)33</b></p><p><b>  附 錄34</b></p><p><b>  Contents</b></p><p>  Chapter One Introduction7</p><p>  Chapt

24、er Two Research in Cloth Gridding8</p><p>  2.1 StepⅠ Gridding Partition of Cloth8</p><p>  2.2 StepⅡ Adding Springs on Cloth10</p><p>  2.3 StepⅢ Boxes Partition of Cloth11<

25、;/p><p>  2.4 StepⅣ Boxes Partition of Body11</p><p>  2.5 StepⅤ Cloth Moving Close to Body11</p><p>  2.6 Some Pictures of Experiment Result11</p><p>  Chpater Three

26、Building Delamination Boxes13</p><p>  3.1 Notion of Delamination Boxes13</p><p>  3.2 Obligation Condition of Delamination Boxes13</p><p>  3.3 Different Sorts of Delamination B

27、oxes Arithmetic13</p><p>  3.3.1 Sphere Box14</p><p>  3.3.2 OBB Box14</p><p>  3.3.3 AABB Box14</p><p>  3.3.4 Comparision and Choise Among These Three Sorts15<

28、;/p><p>  3.4 Optimizion of AABB Box's Storage15</p><p>  3.4.1 Structure of AABB Tree16</p><p>  3.4.2 The Optimizion Method16</p><p>  3.4.3 Result After Optimizi

29、on17</p><p>  3.4.4 The AABB Tree of body17</p><p>  Chapter Four Collision-Checking18</p><p>  4.1 Collision-Checking Between Cloth and Body18</p><p>  4.1.1 Theo

30、ry of Collision-Checking18</p><p>  4.1.2 Arithmetic Realization of Collision-Checking by AABB Box19</p><p>  4.1.3 Two Steps of Collision-Checking19</p><p>  4.2 Self-Collision

31、of Cloth21</p><p>  4.2.1 Origin and Theory of Self-Collision21</p><p>  4.2.2 Arithmetic Realization of Self-Collision22</p><p>  4.3 Some Pictures of Experiment Result24</p

32、><p>  4.3.1 Results Before Collision-Checking24</p><p>  4.3.2 Results After Collision-Checking25</p><p>  Chapter Five Collision Response26</p><p>  5.1 Definition o

33、f Collision Response26</p><p>  5.2 Analysis of Collision Response26</p><p>  5.3 Realization Method of Collision Response26</p><p>  5.4 Results of Collision Response27</p&g

34、t;<p>  5.5 Some Pictures of Experiment Result27</p><p>  Chapter Six Cloth-Stitching28</p><p>  6.1 Theory of Cloth-Stitching28</p><p>  6.2 Steps of Cloth-Stitching28&

35、lt;/p><p>  6.3 Arithmetic Realization of Cloth-Stitching29</p><p>  6.4 Some Pictures of Experiment Result30</p><p>  Chapter Seven Summary and Prospect31</p><p>  7.

36、1 Summary31</p><p>  7.2 Prospect31</p><p>  Acknowledgements32</p><p>  References33</p><p>  Supplements34</p><p><b>  引言</b></p>

37、<p>  隨著計(jì)算機(jī)技術(shù)以及互聯(lián)網(wǎng)的快速發(fā)展,服裝的購(gòu)買方式及途徑也在悄然改變。一般的,我們需要親自到商店進(jìn)行選購(gòu)、試穿,還不一定能夠買到稱心如意的衣服。并且這種途徑存在著時(shí)間、地點(diǎn)等多重限制。如果是在冬天,由于天氣寒冷,試穿衣服不方便,會(huì)大大降低消費(fèi)者的購(gòu)買熱情。</p><p>  這種情況下,市場(chǎng)就會(huì)對(duì)一種可以在互聯(lián)網(wǎng)上模擬現(xiàn)實(shí)中商店選購(gòu)、試穿衣服的服裝試衣系統(tǒng)產(chǎn)生消費(fèi)需求。數(shù)量龐大的網(wǎng)民、廣

38、闊的市場(chǎng)前景等導(dǎo)致三維服裝試衣系統(tǒng)的出現(xiàn)。</p><p>  綜合三維服裝試衣系統(tǒng)的便利,有以下幾個(gè)具體方面:</p><p> ?。?)消除地點(diǎn)限制:無(wú)論你身處何方,只要在互聯(lián)網(wǎng)上,都是你的地盤;</p><p> ?。?)節(jié)約交通成本:不出家門就可獲得同樣信息,減少交通開(kāi)銷;</p><p> ?。?)縮短選購(gòu)時(shí)間:琳瑯滿目的商品,系統(tǒng)

39、已將它們分門別類;</p><p>  (4)方便輕松試衣:只要輕點(diǎn)鼠標(biāo),選中的衣服穿著效果馬上顯示;</p><p> ?。?)快捷交換意見(jiàn):在網(wǎng)絡(luò)上,可以及時(shí)與好友交換購(gòu)買建議。</p><p>  在這個(gè)三維服裝試衣系統(tǒng)中,為了更貼近現(xiàn)實(shí)中穿在人體身上的效果,使顧客看見(jiàn)真實(shí)的服裝展示,需要用到一項(xiàng)較難但卻重要的技術(shù)——碰撞檢測(cè)及響應(yīng)。該技術(shù)是模擬真實(shí)場(chǎng)景的三維

40、穿衣效果,而取代簡(jiǎn)單的二維平面貼圖方式。構(gòu)造動(dòng)態(tài)服裝模擬試穿的過(guò)程中,必須能夠?qū)崟r(shí)、精確地判斷織物中人體模型之間是否發(fā)生碰撞。</p><p>  碰撞檢測(cè)需要對(duì)發(fā)生碰撞的物體進(jìn)行一些前期的準(zhǔn)備工作,包括:衣片的網(wǎng)格劃分并添加彈簧力,對(duì)衣片及人體進(jìn)行包圍盒劃分,控制衣片的運(yùn)動(dòng)等。本文將對(duì)這些過(guò)程做簡(jiǎn)單的介紹。接著,當(dāng)衣片靠近人體時(shí),最重要的碰撞檢測(cè)及響應(yīng)過(guò)程就開(kāi)始執(zhí)行了。這個(gè)部分本文將進(jìn)行重點(diǎn)詳細(xì)的介紹。最后,將

41、衣片進(jìn)行縫合成完整的衣服。這個(gè)部分本文也將進(jìn)行詳細(xì)的講解。</p><p><b>  衣片劃分研究</b></p><p>  前期準(zhǔn)備工作是進(jìn)行碰撞檢測(cè)的基礎(chǔ),是不可或缺的一部分。在準(zhǔn)備過(guò)程中,衣片劃分的研究是關(guān)鍵的一步。準(zhǔn)備工作流程如圖2-1所示:</p><p>  圖 2-1 準(zhǔn)備工作流程圖</p><p> 

42、 2.1 第一步 衣片網(wǎng)格劃分</p><p>  衣片的網(wǎng)格劃分采用Delaunay三角網(wǎng)格化算法[1],此算法的優(yōu)點(diǎn)為:</p><p>  1.最接近:以最近臨的三點(diǎn)形成三角形,且各線段(三角形的邊)皆不相交;</p><p>  2.唯一性:不論從區(qū)域何處開(kāi)始構(gòu)建,最終都將得到一致的結(jié)果;</p><p>  3.最優(yōu)性:任意兩個(gè)相鄰

43、三角形形成的凸四邊形的對(duì)角線如果可以互換的話,那么兩個(gè)三角形六個(gè)內(nèi)角中最小的角度不會(huì)變大;</p><p>  4.最規(guī)則:如果將三角網(wǎng)中的每個(gè)三角形的最小角進(jìn)行升序排列,則Delaunay三角網(wǎng)的排列得到的數(shù)值最大;</p><p>  5.區(qū)域性:新增、刪除、移動(dòng)某一個(gè)頂點(diǎn)時(shí)只會(huì)影響臨近的三角形;</p><p>  6.具有凸多邊形的外殼:三角網(wǎng)最外層的邊界形

44、成一個(gè)凸多邊形的外殼。</p><p>  效果如圖2-2所示:</p><p>  圖 2-2 復(fù)雜衣片網(wǎng)格化</p><p>  三角形剖分[2]步驟:</p><p>  將頂點(diǎn)列表的數(shù)據(jù)進(jìn)行預(yù)排序;</p><p>  (2) 構(gòu)造包容所有頂點(diǎn)的一個(gè)大三角形,形成三角形列表中第一個(gè)三角形;</p>

45、<p>  (3) 對(duì)形成的點(diǎn)的連接關(guān)系進(jìn)行優(yōu)化,得到散亂數(shù)據(jù)點(diǎn)的最優(yōu)三角剖分,即Delaunay 三角剖分。將形成的三角形加入到三角形列表中;</p><p>  (4) 逐次加入新點(diǎn),繼續(xù)上述過(guò)程直至遍歷所有的頂點(diǎn)。將大三角形從三角形列表中剔除,得到的網(wǎng)格的拓?fù)湫畔? 頂點(diǎn)列表和三角形列表。</p><p>  以下是根據(jù)這些步驟的效果如圖2-3所示:</p>

46、<p>  圖 2-3 衣片網(wǎng)格化步驟</p><p>  2.2 第二步 衣片添加彈簧</p><p>  衣片網(wǎng)格化后的頂點(diǎn)是質(zhì)點(diǎn),邊是彈簧,每一個(gè)質(zhì)點(diǎn)與周圍質(zhì)點(diǎn)以彈簧相連。根據(jù)織物的力學(xué)性能,彈簧分為3類:結(jié)構(gòu)彈簧、剪切彈簧以及柔性彈簧[3]。如圖2-4所示:</p><p>  圖 2-4 三種彈簧類型</p><p> 

47、 之前的程序采用的是正則柵格網(wǎng)格化方法,它的彈簧模型是正則柵格彈簧,如圖2-5所示:</p><p>  圖 2-5 正則柵格彈簧模型</p><p>  現(xiàn)在根據(jù)后續(xù)程序進(jìn)行碰撞檢測(cè)的需求,將此彈簧模型改為三角網(wǎng)格彈簧,如圖2-6所示:</p><p>  圖 2-6 三角網(wǎng)格彈簧模型</p><p>  其中三種彈簧模型沒(méi)有改變,只對(duì)其位

48、置做出調(diào)整。調(diào)整后的彈簧模型適應(yīng)程序的需要,完好的實(shí)現(xiàn)了后面的碰撞檢測(cè)。</p><p>  2.3 第三步 衣片包圍盒劃分</p><p>  衣片的包圍盒劃分也是這次工作的重點(diǎn),將在第三章具體講解。詳見(jiàn)10頁(yè)。</p><p>  2.4 第四步 人體包圍盒劃分</p><p>  人體包圍盒劃分采用和衣片相同的方法,詳見(jiàn)第三章10頁(yè)。&

49、lt;/p><p>  2.5 第五步 衣片向人體運(yùn)動(dòng)</p><p>  衣片向人體運(yùn)動(dòng)的本質(zhì)是實(shí)時(shí)更新質(zhì)點(diǎn)的位置,通過(guò)定義一個(gè)時(shí)間間隔deltaTimeMass變量,運(yùn)行IntegrateSysOverTime()函數(shù)以確定下一步質(zhì)點(diǎn)運(yùn)動(dòng)的位置,當(dāng)然衣片運(yùn)動(dòng)的開(kāi)始即時(shí)碰撞檢測(cè)的開(kāi)始。</p><p><b>  2.6 實(shí)驗(yàn)效果圖</b><

50、;/p><p>  衣片向人體運(yùn)動(dòng)過(guò)程中,曾經(jīng)出現(xiàn)兩種錯(cuò)誤現(xiàn)象:一個(gè)是衣片扭結(jié)在一起;另一個(gè)是衣片上下部分運(yùn)動(dòng)不一致。如圖2-7所示:</p><p>  圖 2-7 運(yùn)動(dòng)時(shí)衣片出現(xiàn)的錯(cuò)誤現(xiàn)象</p><p>  經(jīng)過(guò)調(diào)整修正后,衣片的運(yùn)動(dòng)恢復(fù)正常。如圖2-8所示:</p><p>  圖 2-8 調(diào)整后的效果</p><p&

51、gt;<b>  建立層次包圍盒</b></p><p>  3.1層次包圍盒概念</p><p>  在過(guò)去的幾十年中,碰撞檢測(cè)的研究取得了很大的進(jìn)步,形成了一些較為成熟的技術(shù)和算法。在這些算法中,層次包圍盒的應(yīng)用比較廣泛,它是通過(guò)用幾何特性簡(jiǎn)單的包圍盒來(lái)近似地描述復(fù)雜的幾何對(duì)象,進(jìn)而通過(guò)構(gòu)造樹(shù)狀層次結(jié)構(gòu)來(lái)逐步逼近對(duì)象的幾何模型,直到幾乎完全獲得對(duì)象的幾何特性。這種

52、方法計(jì)算量小,運(yùn)行速度較快等優(yōu)點(diǎn)正是我們從多種方法中選擇它的原因。</p><p>  人體/衣片是一種復(fù)雜的物體,它有很多幾何子部分組成,可進(jìn)一步求出這些幾何子部分的包圍盒,這些子部分又遞歸地由更小的部分組成,由此可將人體/衣片及其子部分的包圍盒組成樹(shù)狀層次結(jié)構(gòu)。該樹(shù)的根節(jié)點(diǎn)是包圍整個(gè)人體/衣片的包圍盒,葉節(jié)點(diǎn)是包圍人體/衣片的基本幾何元(三角面片)的包圍盒,中間節(jié)點(diǎn)則對(duì)應(yīng)于各級(jí)子部分的包圍盒[5]。</

53、p><p>  3.2 層次包圍盒約束條件</p><p>  對(duì)于應(yīng)用于碰撞檢測(cè)的包圍盒,一般有以下兩方面的約束[6]:</p><p>  (1) 簡(jiǎn)單性:包圍盒應(yīng)該是簡(jiǎn)單的幾何體,至少應(yīng)該比被包圍的幾何對(duì)象簡(jiǎn)單。簡(jiǎn)單性不僅表現(xiàn)為幾何形狀簡(jiǎn)單易于計(jì)算,而且包括相交測(cè)試算法的快速簡(jiǎn)單;</p><p>  (2) 緊密性:包圍盒應(yīng)該盡可能地貼近

54、被包圍的幾何對(duì)象。緊密性可以用包圍盒B與被包圍對(duì)象G間的Hausdorff距離r來(lái)衡量(r=maxmindist(b,g)),r越小,緊密性越好,緊密性直接關(guān)系到需要進(jìn)行相交測(cè)試的包圍盒數(shù)目。</p><p>  3.3 層次包圍盒算法分類</p><p>  根據(jù)包圍盒選擇的不同,基于包圍盒的碰撞檢測(cè)算法主要有:</p><p>  (1)基于包圍球(Sphere

55、);</p><p>  (2)方向包圍盒OBB (Oriented Bounding Box);</p><p> ?。?)沿坐標(biāo)軸的包圍盒AABB (Axis-Aligned Bounding Boxes)。</p><p>  3.3.1包圍球Sphere</p><p>  一個(gè)給定對(duì)象的包圍球(Sphere)被定義為包含該對(duì)象的最小

56、的球體[7]。球是相當(dāng)簡(jiǎn)單的幾何體,只需要圓心和半徑就可以完全表示出一個(gè)球體,對(duì)于電腦繪圖來(lái)說(shuō)可以節(jié)省存儲(chǔ)空間。計(jì)算給定對(duì)象的包圍球,首先需分別計(jì)算對(duì)象的基本幾何元素集合中所有元素的頂點(diǎn)x坐標(biāo)、y坐標(biāo)、z坐標(biāo)的均值來(lái)確定包圍球的球心c,再由球心與三個(gè)最大值坐標(biāo)所確定的點(diǎn)間的距離計(jì)算半徑r,存儲(chǔ)一個(gè)包圍球只需兩個(gè)浮點(diǎn)數(shù)。包圍球確定的區(qū)域?yàn)椋?lt;/p><p><b>  (3-1)</b><

57、;/p><p><b>  如圖3-1所示:</b></p><p>  圖3-1 包圍球(Sphere)</p><p>  3.3.2 方向包圍盒OBB</p><p>  一個(gè)給定對(duì)象的方向包圍盒OBB(Oriented Bounding Box)被定義為包含該對(duì)象且相對(duì)于坐標(biāo)軸方向任意的最小長(zhǎng)方體[8]。假定一個(gè)OB

58、B的中心為c,三個(gè)相互正交的方向:v1、v2、v3,三方向上邊長(zhǎng)的“半徑”為r1、r2、r3,則OBB確定的區(qū)域?yàn)椋?lt;/p><p><b> ?。?-2)</b></p><p><b>  如圖3-2所示:</b></p><p>  圖 3-29 方向包圍盒 (OBB)</p><p>  3

59、.3.3 沿坐標(biāo)軸的包圍盒AABB</p><p>  一個(gè)給定對(duì)象的沿坐標(biāo)軸包圍盒AABB(Axis-Aligned Bounding Boxes)被定義為包含該對(duì)象且各邊平行于坐標(biāo)軸的最小六面體[9]。AABB的技術(shù)十分簡(jiǎn)單,只需分別計(jì)算組成對(duì)象的基本幾何元素集合中各個(gè)元素頂點(diǎn)的x坐標(biāo)、y坐標(biāo)和z坐標(biāo)的最小值和最大值(lx、ly、lz和ux、uy、uz)。描述一個(gè)AABB僅需六個(gè)標(biāo)量。在構(gòu)造AABB時(shí),需沿著

60、物體局部坐標(biāo)系的軸向來(lái)構(gòu)造,所有的AABB具有一致的方向。AABB確定的區(qū)域?yàn)椋?lt;/p><p><b> ?。?-3)</b></p><p><b>  如圖3-3所示:</b></p><p>  圖3-3 沿坐標(biāo)軸包圍盒(AABB)</p><p>  3.3.4三種包圍盒算法比較與抉擇&l

61、t;/p><p>  三種不同的算法有各自的優(yōu)缺點(diǎn),其比較如下:</p><p>  表 3-1 三種包圍盒方法比較[10]</p><p>  根據(jù)所做的三維服裝試衣系統(tǒng)需要較快的運(yùn)行速度、較精確的檢測(cè)精度等特點(diǎn)以及實(shí)驗(yàn)室的軟硬件設(shè)備條件,我們選擇了第三種——AABB包圍盒算法對(duì)衣片和人體進(jìn)行劃分。</p><p>  3.4 AABB包圍盒存

62、儲(chǔ)優(yōu)化</p><p>  上述的算法選擇主要為提高碰撞檢測(cè)運(yùn)行速度而考慮,而內(nèi)存需求問(wèn)題也是一個(gè)不可忽略的研究重點(diǎn)。包圍盒樹(shù)中存儲(chǔ)每個(gè)三角形通常需要一定的字節(jié)數(shù),若不對(duì)這些節(jié)點(diǎn)進(jìn)行存儲(chǔ)優(yōu)化,會(huì)導(dǎo)致數(shù)據(jù)量龐大,進(jìn)而影響運(yùn)行速度和質(zhì)量。</p><p>  3.4.1 AABB樹(shù)的構(gòu)造</p><p>  采用自頂向下的方法來(lái)構(gòu)造AABB樹(shù),算法[11]如下:<

63、/p><p>  (1) 求出根節(jié)點(diǎn)V 所包含的基本幾何元素的坐標(biāo)值;</p><p>  (2) 求出節(jié)點(diǎn)V 的AABB;</p><p>  (3) 沿著當(dāng)前的AABB的最長(zhǎng)軸,按三角形的重心劃分為兩個(gè)子集;</p><p>  (4) 把兩個(gè)子集分別作為根節(jié)點(diǎn),返回步驟2。直到每個(gè)基本幾何元素的AABB 都是葉子節(jié)點(diǎn)。</p>

64、<p>  由此得到的AABB 樹(shù)是一棵完全的二叉樹(shù), 每個(gè)葉子節(jié)點(diǎn)僅含有一個(gè)三角形。</p><p>  舉一例說(shuō)明,以下是一棵AABB樹(shù),如圖3-4所示:</p><p>  圖 3-4 優(yōu)化前的AABB樹(shù)</p><p>  這棵樹(shù)需要存儲(chǔ)12個(gè)葉子節(jié)點(diǎn),11個(gè)內(nèi)部節(jié)點(diǎn)。</p><p>  3.4.2 優(yōu)化方法</p

65、><p>  然后通過(guò)以下兩個(gè)方法來(lái)進(jìn)行存儲(chǔ)優(yōu)化: </p><p>  (1) 根節(jié)點(diǎn)優(yōu)化:對(duì)于一顆有N個(gè)葉節(jié)點(diǎn)的AABB樹(shù)來(lái)說(shuō),共有N-1個(gè)內(nèi)部節(jié)點(diǎn),忽略根節(jié)點(diǎn)添加的1個(gè)字節(jié)的標(biāo)志位,可以節(jié)省(N-2)*(32-21)個(gè)字節(jié)。</p><p>  (2) 葉節(jié)點(diǎn)優(yōu)化:對(duì)于葉節(jié)點(diǎn)做重疊測(cè)試時(shí)直接采取三角形間的相交測(cè)試,而取代包圍盒之間的重疊測(cè)試;同樣的,當(dāng)對(duì)物體A的葉

66、節(jié)點(diǎn)和物體B的內(nèi)部節(jié)點(diǎn)(或者相反)進(jìn)行重疊測(cè)試時(shí),應(yīng)用快速三角形與包圍盒相交測(cè)試Moller算法,也可以取代包圍盒之間的重疊測(cè)試,從而減少算法的時(shí)間開(kāi)銷。</p><p>  3.4.3 優(yōu)化后結(jié)果</p><p>  優(yōu)化后結(jié)果如圖3-5所示:</p><p>  圖3-5 優(yōu)化后的AABB樹(shù)</p><p>  從兩幅圖的對(duì)比上可以明顯看

67、出優(yōu)化后的樹(shù)結(jié)構(gòu)更為簡(jiǎn)潔,減少了約一半的內(nèi)存需求。</p><p>  3.4.4 人體AABB樹(shù)</p><p>  根據(jù)上述方法,構(gòu)造人體AABB層次包圍盒如圖3-6所示:</p><p>  圖3-6 人體AABB樹(shù)層次結(jié)構(gòu)圖</p><p><b>  碰撞檢測(cè)</b></p><p> 

68、 4.1 衣片與人體碰撞檢測(cè)</p><p>  4.1.1 碰撞檢測(cè)原理</p><p>  碰撞檢測(cè)的輸入模型是構(gòu)成幾何對(duì)象的基本幾何元素(本系統(tǒng)使用的是三角形) 的集合, 其任務(wù)是確定在某一時(shí)刻兩個(gè)模型是否發(fā)生干涉, 即它們的交集是否不為空, 如發(fā)生碰撞, 還需確定碰撞部位(參與碰撞的基本幾何元素) 。</p><p>  從幾何上講, 碰撞檢測(cè)表現(xiàn)為兩個(gè)多面

69、體的求交測(cè)試問(wèn)題; 按對(duì)象所處的空間可分為二維平面碰撞檢測(cè)和三維空間碰撞檢測(cè)。</p><p>  平面碰撞檢測(cè)相對(duì)簡(jiǎn)單一些, 已經(jīng)有較為成熟的檢測(cè)算法, 而三維空間碰撞檢測(cè)則要復(fù)雜得多。三維空間的碰撞檢測(cè)需要以下流程,如圖4-1所示:</p><p>  圖4-1 碰撞檢測(cè)流程[12]</p><p>  4.1.2 基于AABB層次包圍盒樹(shù)的碰撞檢測(cè)算法實(shí)現(xiàn)&l

70、t;/p><p>  當(dāng)對(duì)三角剖分后的織物建立起了層次包圍盒二叉樹(shù)后,同理對(duì)人體也進(jìn)行三角剖分,建立另一棵層次包圍盒二叉樹(shù)。則判斷織物與周圍環(huán)境中其他物體之間是否有碰撞就歸為對(duì)兩棵二叉樹(shù)進(jìn)行遍歷和判交。基于AABB樹(shù)碰撞檢測(cè)算法的核心是通過(guò)有效遍歷這兩棵樹(shù),以確定在當(dāng)前時(shí)刻,活動(dòng)對(duì)象(衣片)的某些部分是否與人體的某些部分發(fā)生碰撞,這是一個(gè)雙重遞歸遍歷的過(guò)程。</p><p>  首先用衣片包圍

71、盒樹(shù)的根節(jié)點(diǎn)遍歷人體包圍盒樹(shù),如果能到達(dá)葉節(jié)點(diǎn),再用該葉節(jié)點(diǎn)遍歷活動(dòng)對(duì)象的包圍盒樹(shù)。如果能到達(dá)活動(dòng)對(duì)象的葉節(jié)點(diǎn),則進(jìn)一步進(jìn)行基本幾何元素的相交測(cè)試。其基本思想是利用幾何特性簡(jiǎn)單的包圍盒代替復(fù)雜的幾何對(duì)象進(jìn)行相交測(cè)試,如果兩個(gè)節(jié)點(diǎn)上的包圍盒不相交,則它們所包圍的對(duì)象的基本幾何元素的子集必定不相交,從而不需要對(duì)子集中的元素做進(jìn)一步的相交測(cè)試。</p><p>  之所以先用衣片的根節(jié)點(diǎn)遍歷人體包圍盒樹(shù),主要考慮在通常

72、情況下人體比衣片要大而且復(fù)雜的多。選用從衣片包圍盒樹(shù)的根節(jié)點(diǎn)開(kāi)始遍歷人體包圍盒樹(shù),可以快速的定位衣片在人體上的位置,較早的排除與衣片不相交的部分。反之,如果先用人體的根節(jié)點(diǎn)遍歷衣片包圍盒樹(shù),往往會(huì)增加包圍盒相交測(cè)試的次數(shù)[13]。</p><p>  4.1.3 碰撞檢測(cè)兩大步驟</p><p>  (1)第一步:粗略檢測(cè)——AABB包圍盒的判交</p><p> 

73、 將AABB包圍盒分別投影到x,y,z坐標(biāo)軸上,顯然,兩個(gè)包圍盒有重疊的充要條件是當(dāng)且僅當(dāng)它們?cè)谌齻€(gè)軸上的投影區(qū)域都有重疊。如果兩個(gè)包圍盒在一個(gè)坐標(biāo)軸上的投影不重疊,則斷定兩個(gè)包圍盒必定沒(méi)有相交。通過(guò)投影,即將三維空間中的求交問(wèn)題轉(zhuǎn)化為一維空間中的求交問(wèn)題。在求交計(jì)算過(guò)程中,只需比較兩個(gè)包圍盒分別在三個(gè)軸上投影的重疊情況,即可得出相交測(cè)試結(jié)果[14]。</p><p><b>  具體步驟:</b

74、></p><p>  A、B為兩個(gè)包圍盒,X為投影軸x1,x2為包圍盒A在投影軸上的兩投影端點(diǎn),x3,x4為包圍盒B在投影軸上的兩投影端點(diǎn),若|x1x2|+|x3x4|<| x1x4|,則在軸向X上A和B不相交;反之,在軸向X上A和B鄰接或相交。當(dāng)包圍盒A、B在三條軸向上的投影皆重疊,則A、B相交。如圖4-2所示:</p><p>  圖4-2 AABB包圍盒判交</p

75、><p> ?。?)第二步:精確檢測(cè)——直線-三角形(L-T)的碰撞檢測(cè)</p><p>  該直線-三角形碰撞檢測(cè)算法原理簡(jiǎn)單。通過(guò)AABB與直線-三角形碰撞檢測(cè)的結(jié)合,當(dāng)質(zhì)點(diǎn)與某一葉子節(jié)點(diǎn)包圍盒發(fā)生相交時(shí),再應(yīng)用直線-三角形碰撞檢測(cè)方法檢測(cè)該模型質(zhì)點(diǎn)與葉子節(jié)點(diǎn)中的三角形是否發(fā)生碰撞。步驟[15]如下:</p><p>  質(zhì)點(diǎn)起始位置為p0,t時(shí)間步長(zhǎng)后位置為p1,

76、p為欲碰撞平面的平面法向量;首先求得p0p1在p方向的向量長(zhǎng)度h(圖4-3a);</p><p>  A為平面內(nèi)任意一點(diǎn),求出某時(shí)刻Ap1在p方向的長(zhǎng)度h’(圖4-3b);</p><p>  若h’/h在(0,1)之間,則線段p0p1必定與平面發(fā)生碰撞,通過(guò)p0 + p0p1 * (1-fPercentage)求出相交點(diǎn)M(圖4-3c);</p><p>  若角

77、AMC,CMB,BMA之和為360度,則相交點(diǎn)M必定在三角形ABC內(nèi)部,由此可判定p0p1必定與三角形ABC發(fā)生碰撞,執(zhí)行相應(yīng)的碰撞響應(yīng)函數(shù)。</p><p>  圖4-3 直線-三角形(L-T)的碰撞檢測(cè)</p><p>  4.2 衣片自碰撞檢測(cè)</p><p>  在服裝仿真的過(guò)程中,除了衣服與人體之間的碰撞外,由于服裝的動(dòng)態(tài)變形,其自身也會(huì)發(fā)生大量的碰撞現(xiàn)象

78、,因此必須進(jìn)行進(jìn)一步的自碰撞檢測(cè)。</p><p>  4.2.1 自碰撞檢測(cè)由來(lái)與原理</p><p>  織物在不斷的運(yùn)動(dòng)變形中,自身各部分之間會(huì)發(fā)生頻繁的碰撞。為了檢測(cè)到自碰撞現(xiàn)象,我們采用Provot提出的方法,對(duì)自碰撞檢測(cè)進(jìn)行優(yōu)化。這個(gè)優(yōu)化是基于這樣的一個(gè)性質(zhì):如果某個(gè)區(qū)域的彎曲率足夠小,則在這塊區(qū)域內(nèi)不會(huì)發(fā)生自碰撞現(xiàn)象。位于這個(gè)區(qū)域內(nèi)的三角形就不必做自碰撞檢測(cè)。這里的彎曲率使用

79、三角形的法向量來(lái)計(jì)算的,用一個(gè)圓錐來(lái)包含某個(gè)區(qū)域所有的三角形面片的法向量。圓錐的頂角a用來(lái)表示此區(qū)域的彎曲率,Provot的結(jié)論是:如果圓錐的頂角a<∏,則這塊區(qū)域不會(huì)發(fā)生穿透現(xiàn)象[16]。如圖4-4,4-5所示</p><p>  圖4-4 平移織物三角形法向量形成一個(gè)圓錐區(qū)域</p><p>  圖4-5 兩個(gè)圓錐角a1、a2生成圓錐角a</p><p>

80、  在層次包圍盒二叉樹(shù)中,每個(gè)葉節(jié)點(diǎn)(僅有一個(gè)三角形單元)有一個(gè)法向量其初值a=0。假定樹(shù)的一個(gè)節(jié)點(diǎn)有兩個(gè)子節(jié)點(diǎn),那么對(duì)應(yīng)這個(gè)節(jié)點(diǎn)的錐體a角可由其兩個(gè)子節(jié)點(diǎn)對(duì)應(yīng)得錐體的a1,a2角和兩個(gè)子節(jié)點(diǎn)對(duì)應(yīng)錐體軸線的夾角b來(lái)確定,公式為:</p><p>  a=b/2+max(a1,a2)               (4-1)</p><p>  4.2.2自碰撞檢測(cè)的算法實(shí)現(xiàn)</p&

81、gt;<p>  研究動(dòng)態(tài)織物的自碰撞問(wèn)題時(shí)我們利用了碰撞檢測(cè)問(wèn)題中的層次包圍盒二叉樹(shù),在每一個(gè)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)總增設(shè)一個(gè)成員變量alpha來(lái)標(biāo)識(shí)其對(duì)應(yīng)圓錐的a角。在構(gòu)造層次包圍盒二叉樹(shù)的時(shí)候,令葉子三角形的a角初始值為0。自下而上遍歷二叉樹(shù),得到每個(gè)節(jié)點(diǎn)的a角。在進(jìn)行自碰撞檢測(cè)的過(guò)程中,把織物各部分之間的自碰撞檢測(cè)問(wèn)題最終歸結(jié)為前述的織物與人體的碰撞檢測(cè)問(wèn)題。</p><p>  自碰撞檢測(cè)和碰撞檢

82、測(cè)方法類似,但其采用計(jì)算三角形表面曲率來(lái)排除大量不必要的碰撞檢測(cè),當(dāng)鄰近三角形法線夾角較小時(shí),它們不可能發(fā)生碰撞,只有當(dāng)夾角超過(guò)闕值時(shí),才有可能碰撞[17]。</p><p>  當(dāng)動(dòng)態(tài)模擬的每一個(gè)時(shí)間步驟中,一旦檢測(cè)到服裝與人體面片之間有碰撞,就對(duì)碰撞對(duì)象施加一定的約束力,從而達(dá)到模擬服裝的動(dòng)態(tài)行為和最終形態(tài)形態(tài)的效果,這稱之為碰撞反應(yīng)。碰撞反應(yīng)的方向和大小取決于碰撞的彈性系數(shù)和表面摩擦系數(shù)等屬性,而且由于時(shí)間

83、間隔很短,計(jì)算表面摩擦力時(shí)不適合應(yīng)用哥倫布法則。為了減少計(jì)算碰撞反應(yīng)的時(shí)間開(kāi)銷,用一種最簡(jiǎn)單的計(jì)算方法。碰撞被看作是非完全彈性的(質(zhì)點(diǎn)在碰撞中損失能量),以質(zhì)點(diǎn)P接觸某個(gè)靜止堅(jiān)硬表面為例,發(fā)生碰撞的表面接觸點(diǎn)為H,N是表面在H點(diǎn)的單位法向量,知道和表面法向量N成a角度碰撞,反射角度成b,b=a。質(zhì)點(diǎn)碰撞后的新速度是V2=-(f+1)(v1×N)N+v1,v1是碰撞前的速度,f是摩擦系數(shù),表述了摩擦力行為的特征。如果f=0,則是

84、一個(gè)無(wú)摩擦的滑動(dòng);如果f是無(wú)窮大,則沒(méi)有滑動(dòng)。一旦質(zhì)點(diǎn)的新速度v2被計(jì)算出,即得到了該時(shí)間步驟后質(zhì)點(diǎn)的新位置。如圖4-6所示:</p><p>  圖4-6 自碰撞檢測(cè)原理圖</p><p>  用同一個(gè)算法來(lái)實(shí)現(xiàn)織物的他碰撞與自碰撞問(wèn)題。</p><p>  算法實(shí)現(xiàn)如下:(偽代碼)</p><p>  void self-collisio

85、n_Detection(CBoundingBox* pRoot)</p><p><b>  {</b></p><p>  if(樹(shù)根pRoot->alpha小于∏)</p><p><b>  {</b></p><p><b>  沒(méi)有碰撞;</b></p&g

86、t;<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if(樹(shù)根的左孩子pRoot->pLBox->alpha大于∏)</p><p><b>  {&l

87、t;/b></p><p>  Self-collision_Detection(pRoot->pLBox);</p><p><b>  }</b></p><p>  if(樹(shù)根的右孩子pRoot->pRBox->alpha大于∏)</p><p><b>  {</b>

88、</p><p>  Self-collision_Detection(pRoot->pRBox);</p><p><b>  }</b></p><p>  if(樹(shù)根的左孩子pRoot->pLBox->alpha不大于∏&&樹(shù)根的右孩子pRoot->pRBox->alpha不大于∏)</

89、p><p><b>  {</b></p><p>  TraversBoxTree(pRoot->pLBox,pRoot->pRBox);//調(diào)用碰撞檢測(cè)算法</p><p><b>  }</b></p><p><b>  }</b></p><

90、;p><b>  }</b></p><p>  在以上算法中,若某一個(gè)節(jié)點(diǎn)的a角大于∏,但其兩個(gè)孩子節(jié)點(diǎn)的a角小于∏,可認(rèn)為以兩個(gè)孩子節(jié)點(diǎn)為樹(shù)根的子樹(shù)可能發(fā)生了碰撞。這種情況下,把兩棵子樹(shù)分別看在兩塊布的層次包圍盒樹(shù),歸結(jié)為上述的兩棵二叉樹(shù)的雙重遍歷問(wèn)題。當(dāng)織物發(fā)生變形后,從葉子節(jié)點(diǎn)自底向上調(diào)節(jié)AABB樹(shù)。如果一個(gè)節(jié)點(diǎn)的a角大于∏,由公示(4-1)可以確定它的父節(jié)點(diǎn)a角必大于∏。在這

91、種情況下,只須給父節(jié)點(diǎn)的a角賦予一個(gè)大于∏的任意值,從而大大加快了層次包圍盒的更新速度[18]。</p><p>  表 4-1 碰撞檢測(cè)算法時(shí)間復(fù)雜度</p><p><b>  4.3 實(shí)驗(yàn)效果圖</b></p><p>  4.3.1 未進(jìn)行碰撞檢測(cè)</p><p>  衣片在沒(méi)有進(jìn)行碰撞檢測(cè)前,向人體靠近后,會(huì)

92、穿透人體。</p><p><b>  如圖4-7所示:</b></p><p>  圖4-7 未檢測(cè)碰撞前</p><p>  4.3.2 碰撞檢測(cè)后</p><p>  衣片與人體靠近到一定距離內(nèi),開(kāi)始進(jìn)行碰撞檢測(cè)。衣片碰到人體后,在肩膀、腋下、腰部等處發(fā)生彎曲。</p><p><b&

93、gt;  如圖4-8所示:</b></p><p>  圖4-8 碰撞檢測(cè)后</p><p><b>  碰撞響應(yīng)</b></p><p>  5.1 碰撞響應(yīng)定義</p><p>  當(dāng)檢測(cè)到發(fā)生了點(diǎn)-三角形碰撞后,就需要按照質(zhì)點(diǎn)的運(yùn)動(dòng)規(guī)律來(lái)糾正碰撞質(zhì)點(diǎn)的位置和速度,解決碰撞后的調(diào)整問(wèn)題,使得碰撞后的反應(yīng)更

94、符合真實(shí)的情況,這種處理稱之為碰撞響應(yīng)[19]。</p><p>  5.2 碰撞響應(yīng)分析</p><p>  針對(duì)衣片質(zhì)點(diǎn)和人體表面發(fā)生的位置碰撞,人體表面會(huì)對(duì)衣片上的質(zhì)點(diǎn)施加一定作用力以避免穿透現(xiàn)象的發(fā)生。這個(gè)作用力的大小、方向均由人體表面的運(yùn)動(dòng)狀態(tài)和衣片質(zhì)點(diǎn)當(dāng)前的運(yùn)動(dòng)狀態(tài)來(lái)決定。碰撞響應(yīng)機(jī)制除了要保證衣服表面與人體表面不發(fā)生位置沖突,更重要的是根據(jù)人體的運(yùn)動(dòng)狀態(tài)合理改變沖突的衣片質(zhì)點(diǎn)

95、當(dāng)前狀態(tài),以得到真實(shí)的仿真結(jié)果[20]。</p><p><b>  我們做出如下假設(shè):</b></p><p> ?。?)碰撞線為碰撞點(diǎn)出的法線,碰撞速度可以不沿著碰撞線的方向;</p><p> ?。?)被碰撞的三角形和其他的三角形相連,因此它的有效質(zhì)量M被認(rèn)為遠(yuǎn)遠(yuǎn)大于碰撞點(diǎn)的質(zhì)量m,即M>>m.</p><

96、p>  第一個(gè)假設(shè)保證質(zhì)點(diǎn)與三角形碰撞時(shí),只改變碰撞線方向的速度;第二個(gè)假設(shè)(M>>m)則保證在碰撞后,三角形能夠保持自己的位置,而不受碰撞的影響。</p><p>  5.3 碰撞響應(yīng)實(shí)現(xiàn)方法</p><p>  以質(zhì)點(diǎn)P碰撞平面為例:</p><p>  假設(shè)質(zhì)點(diǎn)P以速度v與三角形平面P0P1P2碰撞。平面的法向量n。V被分解為垂直于平面的前進(jìn)

97、速度v1和平行于平面的前進(jìn)速度v2.則v1 =(v·n)·n, v2 =v- v1;</p><p>  由于質(zhì)點(diǎn)和三角形要相互摩擦,設(shè)摩擦系數(shù)為f。則有以下2種情況:</p><p>  1.|v2|>=f·|v1|,說(shuō)明質(zhì)點(diǎn)在三角形平面上作水平摩擦移動(dòng),速度衰減為:v’=v2-f·|v1|·u,其中u=v2/|v2|。</p

98、><p>  2.|v2|<f·|v1|,說(shuō)明質(zhì)點(diǎn)在三角形平面上不會(huì)作水平滑動(dòng)。則v’=-f·v1。</p><p>  5.4 碰撞響應(yīng)效果圖</p><p>  圖5-1 碰撞響應(yīng)的兩種情況</p><p><b>  5.5 實(shí)驗(yàn)效果圖</b></p><p>  圖5

99、-2 碰撞響應(yīng)效果圖</p><p><b>  衣片縫合</b></p><p>  6.1 衣片縫合原理</p><p>  通過(guò)縫合技術(shù),可以將二維衣片縫合成三維的服裝數(shù)據(jù)描述。當(dāng)兩個(gè)衣片縫合質(zhì)點(diǎn)足夠近時(shí),我們認(rèn)為己經(jīng)完成縫合過(guò)程,將其處理成一個(gè)織物質(zhì)點(diǎn)。</p><p>  由于縫合后有可能縫合線會(huì)與人體模型發(fā)生

100、碰撞,進(jìn)而會(huì)產(chǎn)生縫合點(diǎn)(對(duì)偶)不能重合的情況。如果兩個(gè)縫合點(diǎn)穿透人體模型,那么它在仿真系統(tǒng)中是無(wú)法完成縫合的,所以我們需要對(duì)縫合線進(jìn)行檢測(cè)。</p><p>  縫合檢測(cè)算法:首先,取得剖分衣片所有頂點(diǎn)集合。其次,取出衣片頂點(diǎn)集合中縫合點(diǎn)對(duì)偶信息,并將其保存至一集合中。最后,以縫合點(diǎn)對(duì)偶(二個(gè)端點(diǎn))形成一個(gè)線段,驗(yàn)證此線段是否與人模相交[21]。如果相交,則發(fā)生碰撞。否則檢測(cè)通過(guò)。線段與人模相交算法可以歸結(jié)到線段

101、與三角平面相交(人體模型由N個(gè)三角片構(gòu)成)。</p><p>  6.2 衣片縫合步驟</p><p>  服裝衣片縫合的基本步驟[22]如下:</p><p><b>  (1)衣片初始化</b></p><p>  在該步驟中,將網(wǎng)格化后的二維服裝衣片放置在人體模型附件的初始位置。初始位置并不需要非常精確,但如果初始

102、位置離最終的縫合位置太遠(yuǎn)會(huì)影響系統(tǒng)的收斂效率,甚至導(dǎo)致縫合過(guò)程失敗。</p><p><b> ?。?)動(dòng)態(tài)變形計(jì)算</b></p><p>  根據(jù)服裝衣片的縫合信息,在衣片的對(duì)應(yīng)縫合邊上加載縫合力,在縫合力的作用下,衣片逐漸變形,并縫合到一起。整個(gè)縫合過(guò)程是一個(gè)動(dòng)態(tài)的迭代過(guò)程,在滿足以下兩個(gè)條件時(shí),終止迭代過(guò)程:</p><p> ?。╝)

103、所有縫合點(diǎn)之間的距離均小于給定的縫合距離;</p><p>  (b)在相鄰的兩次迭代過(guò)程中,系統(tǒng)中的每一個(gè)粒子的位移量小于給定的誤差。</p><p>  條件(a)保證所有的衣片均處于縫合狀態(tài);</p><p>  條件(b)保證衣片處于最終的平衡狀態(tài)。</p><p>  縫合過(guò)程結(jié)束后,便可得到縫合后的形狀。</p>&

104、lt;p><b>  如圖6-1所示:</b></p><p>  圖 6-1 衣片縫合受力分析</p><p>  6.3 衣片縫合的算法實(shí)現(xiàn)</p><p>  在服裝衣片的虛擬縫合中,為了將不同的衣片縫合在一起,需要在衣片的縫合邊上加載縫合力。在系統(tǒng)中,縫合力被定義為對(duì)應(yīng)縫合點(diǎn)之間距離的線性函數(shù)。對(duì)兩個(gè)縫合點(diǎn)p1,p2,縫合力可以按

105、如下公式計(jì)算:縫合力f =-k×i,其中k為縫合力系數(shù),該系數(shù)與織物的縫合性能有關(guān),通常較難變形的織物采用較大的縫合力系數(shù);i表示從縫合點(diǎn)p2指向p1的方向矢量,如圖6-1所示[23]??p合點(diǎn)距離越近,縫合力越?。挥晒剑?lt;/p><p>  Fp1->p2=-k*ip1->p2                        (6-1)</p><p>  

106、保證了p1點(diǎn)縫合力的指向,由公式:</p><p>  Fp1->p2= Fp2->p1          (6-2)</p><p>  構(gòu)造了模擬縫合時(shí)粒子運(yùn)動(dòng)所需的各種力及表達(dá)式,考察縫合邊上的粒子空間幾何狀態(tài)向量可以由下列公式描述:</p><p><b> ?。?-3)</b></p>&

107、lt;p>  通過(guò)此公式以及數(shù)值積分方法,給定合適的時(shí)間不長(zhǎng),整個(gè)衣片開(kāi)始變形,完成虛擬縫合效果[24]。</p><p><b>  6.4 實(shí)驗(yàn)效果圖</b></p><p>  圖6-2 衣片縫合過(guò)程</p><p><b>  總結(jié)與展望</b></p><p><b>  

108、7.1 總結(jié)</b></p><p>  本論文詳細(xì)闡述了碰撞檢測(cè)及響應(yīng)的具體過(guò)程,以及后期的衣片縫合過(guò)程。碰撞檢測(cè)及響應(yīng)主要作用在于計(jì)算機(jī)模擬現(xiàn)實(shí)的三維物體,并且根據(jù)物體的不可穿透性來(lái)進(jìn)行碰撞檢測(cè),使得計(jì)算機(jī)內(nèi)部的虛擬環(huán)境模擬四維時(shí)空。衣片的縫合有區(qū)別于單純的二維貼圖,它和碰撞檢測(cè)一樣要達(dá)到模擬現(xiàn)實(shí)的效果。項(xiàng)目試驗(yàn)碰撞檢測(cè)及響應(yīng)和衣片縫合是三維服裝試衣系統(tǒng)中的關(guān)鍵步驟,所采用的技術(shù)、算法較為復(fù)雜,時(shí)

109、間復(fù)雜度大。本文根據(jù)這些步驟一步步細(xì)化,并具體實(shí)現(xiàn)。目前項(xiàng)目已經(jīng)結(jié)束,基本能夠?qū)崿F(xiàn)虛擬現(xiàn)實(shí)效果,但還存在一些不足之處:</p><p>  衣片樣式粗糙,不太符合現(xiàn)實(shí)生活中的衣服;</p><p>  紋理比較單調(diào),不富于變化;</p><p>  界面還需改進(jìn)為更人性化;</p><p>  衣片與人體碰撞檢測(cè)速度慢。</p>

110、<p>  前三個(gè)不足需要我們花更多的時(shí)間精力來(lái)完善,最后一個(gè)也是最關(guān)鍵的一個(gè),需要我們對(duì)碰撞檢測(cè)的算法繼續(xù)努力鉆研,從更多的實(shí)驗(yàn)中來(lái)獲取經(jīng)驗(yàn),優(yōu)化算法,減小時(shí)間復(fù)雜度,提高運(yùn)行速率。</p><p><b>  7.2 展望</b></p><p>  三維服裝試衣系統(tǒng)適應(yīng)目前市場(chǎng)需求,有強(qiáng)大的潛在發(fā)展前景。若國(guó)內(nèi)出現(xiàn)這樣一個(gè)成熟的軟件,其吸引的消費(fèi)群體

111、是龐大的,能夠創(chuàng)造巨額利潤(rùn)。三維服裝試衣系統(tǒng)功能強(qiáng)大,涉及的技術(shù)領(lǐng)域廣。隨著計(jì)算機(jī)的高速發(fā)展,系統(tǒng)所需要的存儲(chǔ)空間、運(yùn)行速度等都將不成問(wèn)題。我們需要做的就是完善此系統(tǒng),界面更加方便消費(fèi)者的使用,并且關(guān)注服裝業(yè)中的流行趨勢(shì),實(shí)時(shí)更新系統(tǒng)中的服裝種類,以吸引更多的消費(fèi)者。</p><p><b>  致 謝</b></p><p>  敲下畢業(yè)論文的最后一個(gè)字,高興之余,

112、有無(wú)限的感激之情要表達(dá)。</p><p>  感謝我的導(dǎo)師——副教授。首先他對(duì)我們的嚴(yán)格要求,無(wú)論是在學(xué)術(shù)上,還是在道德修養(yǎng)上,都為我們指明了正確的方向;其次每周一次的會(huì)議,姚老師認(rèn)真傾聽(tīng)我們的匯報(bào),優(yōu)秀之處用贊揚(yáng)的話語(yǔ)鼓勵(lì)我們,不足之處及時(shí)指出和指導(dǎo)我們改正,并激勵(lì)我們克服困難。最后是老師的慷慨無(wú)私和對(duì)學(xué)生的關(guān)心,為我們提供的良好的實(shí)驗(yàn)室環(huán)境及其他條件。</p><p>  還要感謝陳青

113、青學(xué)姐和蔡永峰、梅琳、湯蕾等同學(xué)。陳青青學(xué)姐總是在我遇到困難時(shí)第一個(gè)幫助鼓勵(lì)我的人,她的良好的自律性和編程能力是我學(xué)習(xí)的榜樣。蔡永峰、梅琳、湯蕾等同學(xué)是我們這個(gè)項(xiàng)目小組的其他成員,是一起研究算法,一起克服困難的戰(zhàn)友。如果沒(méi)有他們,畢設(shè)的路程將更加艱辛。這段日子因?yàn)橛辛怂麄兊牟⒓缱鲬?zhàn),學(xué)習(xí)生活中伴著歡笑而成長(zhǎng)。</p><p>  最后要感謝我的父母親——翁學(xué)堂、李麗珠。他們?cè)谖业拇髮W(xué)四年里,默默的為我付出了很多心

114、血。沒(méi)有了父母親的殷切期望,也就沒(méi)有了前進(jìn)的動(dòng)力。正是因?yàn)樗麄円宦飞系墓膭?lì)與支持,我才能走到今天。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 王湛.基于虛擬現(xiàn)實(shí)的三維服裝展示[D].北京服裝學(xué)院,2006.</p><p>  [2] 馬良,張渭源.服裝衣片三角形網(wǎng)格自動(dòng)剖分[J].東華大學(xué)學(xué)報(bào),2002,28(

115、4):48~59.</p><p>  [3] 李笑牛,趙偉.六面體有限元網(wǎng)格生成方法綜述[J].大連民族學(xué)院學(xué)報(bào),2003,5(3):1~5.</p><p>  [4] 惠衛(wèi)華,關(guān)正西.基于質(zhì)點(diǎn)_彈簧模型的布料仿真研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(3):664~667.</p><p>  [5] S Paquette.3D scanning in

116、Apparel Design and Human Engineering[J].IEEE Computer Graphics and Applications,1996,16(5):11~17.</p><p>  [6] 李井輝,申靜波.基于包圍盒的碰撞檢測(cè)技術(shù)研究[J].高校實(shí)驗(yàn)室工作研究,2006,90(4):31~35.</p><p>  [7] 高玉琴,何云峰,于俊清.改進(jìn)的基

117、于AABB包圍盒的碰撞檢測(cè)算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(16):3815~3819.</p><p>  [8] 劉卉,陳純,施伯樂(lè).基于改進(jìn)的彈簧-質(zhì)點(diǎn)模型的三維服裝模擬[J].軟件學(xué)報(bào),2003,14(3):619~626.</p><p>  [9] 王立文,劉璧瑤,韓俊偉.基于包圍盒的碰撞檢測(cè)算法[J].中國(guó)民航大學(xué)學(xué)報(bào),2007,25(4):16~19.</

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論