亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        拉伸、碰撞情景下布料撕裂的實時仿真模擬

        2019-12-04 03:15:40劉宇涵賈江凱陶建新張金鐘任小霞
        小型微型計算機系統(tǒng) 2019年11期
        關鍵詞:質(zhì)點數(shù)據(jù)結(jié)構(gòu)風場

        劉宇涵,賈江凱,唐 勇,陶建新,張金鐘,任小霞

        1(燕山大學 信息科學與工程學院,河北 秦皇島 066004)2(河北省計算機虛擬技術與系統(tǒng)集成重點實驗室,河北 秦皇島 066004)

        1 引 言

        布料模擬在計算機圖形學中占很大的比重,但在游戲中,模擬布料撕裂的效果嚴重失真.相比布料其它運動行為的模擬,布料撕裂導致網(wǎng)格結(jié)構(gòu)的改變以及撕裂軌跡的難以捉摸,使得布料撕裂模擬的研究更具有挑戰(zhàn)性.

        20世紀80年代開始,大量科學家致力于計算機模擬布料撕裂的研究.1998年,Terzopoulos和Fleischer等人[1]在展示了一種撕紙和模擬布狀材料的技術,給布料撕裂模擬研究提供了借鑒.2007年,Sifakis等人[2]使用虛擬節(jié)點法,在虛擬元素中嵌入裂縫,降低布料的穩(wěn)定性,然而這種方法限制了裂縫傳播的準確性,需要規(guī)定撕裂軌跡.2009年,kaufmann等人[3]嵌入XFEM可以準確地解決規(guī)定撕裂軌跡的問題,但是對軌跡的幾何形狀進行了限制,且計算代價太大.2009年,Metaaphanon N 等人[4]使用標準連續(xù)表單模型和紗線級模型,模擬出逼真的布料撕裂邊緣的磨損效果.正是因為兩層模型的使用,實驗模擬速度達不到實時.2014年,Souza M S等人[5]提出一種使用Half-edge結(jié)構(gòu)的查找方法解決布料的撕裂模擬,提高了計算速度,但是降低了真實感.國內(nèi)方面,2016年,唐勇等人[6]提出一種多形態(tài)布料與物體實時碰撞與檢測的方法,成功處理了布料與物體之間的碰撞問題.同年,Bi W 等人[7]研究了人體視覺對不同屬性的布料感知的恒定常數(shù),主要分析視覺系統(tǒng)在抵消了外力的影響后,對布料屬性的感知,但對于不同屬性的布料在風場中的模擬缺乏真實感.2017年,Camille Schreck等人[8]提出了一種交互式建模背景下的撕紙方法,通過幾何信息來自動檢測撕裂路徑上潛在的撕裂點,但是只能用于模擬低分辨率網(wǎng)格的紙片,不能有效地處理高分辨率的網(wǎng)格.同一年,Vassilev T I[9]改進質(zhì)點彈簧模型,并將其運用在虛擬人體穿衣的系統(tǒng)中.2018年,Li J等人[10]提出一種用于自適應布料模擬摩擦、碰撞的解算器,應用于虛擬人體穿衣.2018年,Oh Y J等人[11]將層次模擬與深度神經(jīng)網(wǎng)絡相結(jié)合來模擬布料的摩擦、碰撞,計算布料碰撞的同時降低了時間成本,但未考慮底層網(wǎng)格對頂層網(wǎng)格質(zhì)點的自適應變化.所以目前的層次模型不適合布料撕裂的模擬.

        綜上,布料撕裂模擬時,通過預先規(guī)定撕裂軌跡的模型其適應性較差,高分辨率網(wǎng)格計算消耗過大,實時性較差.本文通過使用基于位置動理學方法并引入撕裂率,以幾何方法計算破損點周圍質(zhì)點撕裂率,準確預測下一個被撕裂質(zhì)點的位置,避免規(guī)定撕裂軌跡的問題;優(yōu)化Half-edge查找算法,提高布料撕裂模擬速度.

        2 布料物理建模方法(基于位置動力學建模方法)

        在計算機圖形學中,尤其是在計算機游戲中,通常希望直接控制網(wǎng)格的對象或頂點的位置.經(jīng)典的布料建模方法有:有限元法、質(zhì)點彈簧模型以及基于位置動力學.有限元方法能夠精確地模擬布料運動效果的同時,計算消耗大,遠達不到實時性的要求;質(zhì)點彈簧模型難以權(quán)衡精度和速度的追求,不適合高分辨率的實時模擬;基于位置動力學方法,使用各種約束方程跳過速度的計算,直接對質(zhì)點位置起作用,使得布料系統(tǒng)在實時交互模擬方面占有巨大優(yōu)勢.

        基于位置動力學方法的核心是布料內(nèi)部受力保持線性動量公式(1)和角動量守恒公式(2).

        (1)

        (2)

        其中,mi為質(zhì)點的質(zhì)量,pi為單位時間內(nèi)位置的變化量,ri為質(zhì)點的旋轉(zhuǎn)半徑.滿足約束方程C(p+Δp)=0后,即可預測下一幀質(zhì)點位置的變化量△p.由泰勒展開得公式(3).

        C(p+Δp)≈C(p)+pC(p)·Δp

        (3)

        本文引入基于位置動力學方法跳過速度層,直接操縱質(zhì)點位置的變化,提升了布料模擬的速度,更適合高分辨率布料網(wǎng)格的實時模擬.在保證布料模擬實時性的同時,模擬出更加逼真自然的撕裂效果.

        3 布料撕裂算法

        3.1 拉伸、碰撞引起的網(wǎng)格質(zhì)點分裂模型

        布料模擬中,其撕裂現(xiàn)象與摩擦、碰撞的區(qū)別在于布料網(wǎng)格的改變.當網(wǎng)格邊受力超過指定的閾值時,選擇分裂其相鄰的兩個質(zhì)點,如果兩個質(zhì)點都可以被分裂,那么選擇分裂質(zhì)量高的質(zhì)點,完成布料網(wǎng)格撕裂效果.而拉伸與碰撞由于受力方向不同,對于網(wǎng)格質(zhì)點分裂也有區(qū)別.

        如圖1所示,在布料受到拉伸力引起的布料撕裂時,拉伸力與布料的處于同一平面上.在分裂質(zhì)點確定之后,分裂出一個質(zhì)點便可以達到布料撕裂的效果.

        如圖2所示,當布料與物體碰撞時,受力與布料處于不同的平面.在分裂質(zhì)點確定之后,質(zhì)點共享的面片數(shù)量確定需要分裂的質(zhì)點數(shù)量.

        3.2 破損點周圍的撕裂

        初次撕裂中網(wǎng)格質(zhì)點分裂后,被分裂與分裂出的質(zhì)點被稱為破損點.張力持續(xù)在破損點附近增加時,撕裂傾向于繼續(xù)擴大已撕裂的部分.破損點周圍的質(zhì)點在撕裂過程中受到影響,抗撕裂值降低.

        圖1 拉伸引起的網(wǎng)格撕裂Fig.1 Mesh tear caused by stretching

        預先規(guī)定撕裂軌跡的原因是不能有效預測下一個撕裂質(zhì)點的位置.本文通過計算破損部位周圍質(zhì)點撕裂率(tearValue),預測下一個最可能被撕裂質(zhì)點位置.其原理是找到與力垂直方向角度相近邊,這條邊是力的主要對抗邊.本文將力方向的垂直軸近似為撕裂線p2-p1,然后根據(jù)點積計算相鄰粒子被撕裂的概率,如公式(4)中所示.

        (4)

        其中p1和p2是撕裂邊緣矢量的兩個頂點,p1是當前步驟的撕裂點,vicinity是p1周圍的質(zhì)點,(vicinity-p1)是可用的下一個撕裂邊緣矢量.在撕裂過程中,下一個邊與撕裂邊緣之間的角度越大,其撕裂發(fā)生概率隨tearValue線性增加.確定質(zhì)點tearValue最大值之后,修改該質(zhì)點的抗撕裂值(tearRes),方法如公式(5)中所示:

        tearRes*=1-tearDeb

        (5)

        圖2 碰撞引起的網(wǎng)格撕裂Fig.2 Mesh tear caused by collision

        3.3 布料撕裂查找算法

        本文通過引入Half-edge數(shù)據(jù)結(jié)構(gòu)查找算法,為網(wǎng)格面片提供快速鄰接查詢,解決布料撕裂模擬中計算消耗大的問題,提升布料撕裂模擬速度.如圖3所示為Half-edge結(jié)構(gòu)圖.

        邊e由e1和e2組成,每個邊(He_edge)的結(jié)構(gòu)體中包括相應的邊和下一條邊以及半邊所在的三角面.Half-edge數(shù)據(jù)結(jié)構(gòu)包括He_vert、He_edge以及He_face三種結(jié)構(gòu)體.

        實驗數(shù)據(jù)表明:Half-edge數(shù)據(jù)結(jié)構(gòu)的表示方法形成的結(jié)構(gòu)體數(shù)量過多會增加計算開支.本文對Half-edge數(shù)據(jù)結(jié)構(gòu)進行優(yōu)化:將Half-edge數(shù)據(jù)結(jié)構(gòu)中He_edge、He_face的結(jié)構(gòu)體抽取融合,來減少運算中生成的結(jié)構(gòu)體.本文將融合后的數(shù)據(jù)結(jié)構(gòu)定義為ModEdge,如表1所示.

        ModEdge數(shù)據(jù)結(jié)構(gòu)抽取出了Half-edge半邊數(shù)據(jù)結(jié)構(gòu)的主要信息,減少布料模擬過程中生成結(jié)構(gòu)體的數(shù)量,達到提升布料的撕裂模擬運算速度的目的.

        圖3 Half-edge結(jié)構(gòu)圖Fig.3 Half-edge Structure diagram

        4 實驗結(jié)果與分析

        本文在Windows 10操作系統(tǒng),Unity3D上使用C#實現(xiàn)了本文所述的算法,硬件系統(tǒng):Intel(R)Core(TM)i7 CPU 4790 3.60GHz,8G RAM和NVIDIA Geforce GTX1060.本文已經(jīng)進行了各種實驗來分析所提出方法的性能.

        表1 ModEdge 數(shù)據(jù)結(jié)構(gòu)
        Table 1 ModEdge deta structure

        ModEdge數(shù)據(jù)結(jié)構(gòu)structModEdge{intp1;inttriangleId1;intp2;inttriangleId2;intid;booltear;intpair;floatrest_length;}

        表2以評估分裂頂點程序的性能記錄了本文方法與文獻[5]中拉伸造成的撕裂模擬實驗數(shù)據(jù)對比,數(shù)據(jù)表明:當分辨率提高后,本文的方法在平均時間消耗上更少,在100*100的網(wǎng)格模擬中,減少一半的時間消耗.

        表2 性能測試對比
        Table 2 Performance test comparison

        三角面數(shù)量方法 平均時間(ms)20?2040?4060?6080?80100?100文獻[5]15183762本文方法1213151730

        圖4中,a1…a5是文獻[5]的實驗效果,b1…b5是本文的實驗效果.由布料褶皺的多少可以看出,本文實驗所用的布料分辨率更高,撕裂效果更逼真自然.

        圖5中網(wǎng)格質(zhì)點數(shù)為2540,實驗模擬拉伸力造成布料的撕裂效果.固定布料的兩邊,并拉動布料的左側(cè).布料在極短的時間內(nèi)破裂,并發(fā)生回彈的現(xiàn)象.使用改進的布料撕裂的算法,能夠?qū)崟r模擬逼真的撕裂效果.

        通過以上實驗可以看出:本文方法使用高分辨率網(wǎng)格模擬布料由于拉伸引起的撕裂,且能滿足實時性的需求.

        圖6(a)是文獻[11]布料在風場中受風力影響抖動的模擬,圖6(b)是本文模擬風場中布料的撕裂過程.因為布料在風場中受到的風力始終在風向的小幅度內(nèi)變動,所以布料在風場中受到垂直風場方向的切割,引發(fā)布料撕裂的現(xiàn)象.圖6(a)文獻[11]中布料褶皺的模擬僵硬、不自然;圖6(b)為本文方法,使用3600個質(zhì)點模擬了布料抖動現(xiàn)象的同時,加入撕裂效果.

        圖4 布料拉伸的撕裂Fig.4 Cloth stretch tear

        圖5 雙邊固定布料拉伸的撕裂Fig.5 Bilateral fixed fabric stretch tear

        圖7是模擬剛體與布料的交互效果,圖7(a)模擬單個球體與布料的碰撞.圖7(b)展示兩個鄰近的球體與布料的碰撞,模擬出兩個球體碰撞生成一個撕裂軌跡的效果.圖7(c)模擬不同位置、不同碰撞時間造成的撕裂效果.多組實驗數(shù)據(jù)表明:本文方法在受到風場切割以及剛體碰撞的條件下,都能生成自然的布料撕裂效果.

        圖6 風場中布料的撕裂Fig.6 Tearing in the wind field

        由以上實驗數(shù)據(jù)可以看出,在布料拉伸、碰撞情境下,能夠?qū)崟r模擬出逼真、自然的撕裂軌跡.

        5 結(jié) 語

        本文通過優(yōu)化Half-edge數(shù)據(jù)結(jié)構(gòu)查找算法,并計算破損點周圍質(zhì)點的撕裂率值,成功完成拉伸、碰撞下布料撕裂的實時模擬.基于位置動力學方法規(guī)避了速度層的計算,直接控制布料質(zhì)點的位置,大大縮減了布料質(zhì)點和場景的交互時間,提高了布料模擬計算速度;利用幾何法預測破損點周圍最可能被撕裂的頂點,成功解決了撕裂軌跡不真實、需要提前規(guī)定撕裂軌跡的問題;考慮到布料撕裂模擬過程中,質(zhì)點查找算法的重要性,在Half-edge的基本思想下,融合邊、面結(jié)構(gòu)體,減少撕裂模擬過程中生成的結(jié)構(gòu)體數(shù)量,提升撕裂模擬速度.今后的研究中,我們將繼續(xù)探索撕裂過程中不同屬性布料的撕裂效果,進一步增加布料撕裂模擬的真實性.

        圖7 碰撞下的布料撕裂模擬Fig.7 Fabric tearing simulation under collision

        猜你喜歡
        質(zhì)點數(shù)據(jù)結(jié)構(gòu)風場
        基于FLUENT的下?lián)舯┝魅S風場建模
        巧用“搬運法”解決連續(xù)質(zhì)點模型的做功問題
        “最美風場”的贏利法則
        能源(2017年8期)2017-10-18 00:47:39
        質(zhì)點的直線運動
        質(zhì)點的直線運動
        “翻轉(zhuǎn)課堂”教學模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學為例
        高職高專數(shù)據(jù)結(jié)構(gòu)教學改革探討
        中國市場(2016年45期)2016-05-17 05:15:48
        側(cè)向風場中無人機的飛行研究
        TRIZ理論在“數(shù)據(jù)結(jié)構(gòu)”多媒體教學中的應用
        《數(shù)據(jù)結(jié)構(gòu)》教學方法創(chuàng)新探討
        河南科技(2014年5期)2014-02-27 14:08:57
        久久久久九九精品影院| 亚洲国产av自拍精选| 免费国产不卡在线观看| 亚洲日本视频一区二区三区| 熟女免费视频一区二区| 国产av国片精品jk制服| 欧美第一黄网免费网站| 久久精品国产亚洲av大全相关| 午夜一区二区三区免费观看| 亚洲av综合av一区二区三区| 午夜福利麻豆国产精品| 亚洲欧美国产日韩天堂在线视| 国产亚洲视频在线观看播放| 亚洲天码一区二区三区| 在线免费观看一区二区| 天码人妻一区二区三区| 亚洲性啪啪无码AV天堂| 国产91成人自拍视频| 国语自产精品视频在线看| 无码任你躁久久久久久| 不卡a v无码在线| 亚洲一区二区三区在线最新| 亚洲av综合av一区| 国内精品视频一区二区三区| av熟女一区二区久久| 富婆猛男一区二区三区| 国产精品福利自产拍在线观看| 欧美视频九九一区二区| 国产精品自拍视频免费观看| 亚洲精品国精品久久99热| 欧美性猛交xxxx乱大交丰满 | 久久精品国产亚洲av麻豆四虎| 国产性虐视频在线观看| 国产中文字幕乱人伦在线观看| YW亚洲AV无码乱码在线观看| 色噜噜色哟哟一区二区三区| 综合五月激情二区视频| 天堂网www在线资源| 女优av福利在线观看| 日本精品一区二区三区二人码| 久久99精品国产99久久6尤物|