999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

同一場景中異質布料的動態繪制

2019-01-24 08:26:48安陽陽劉宇涵任小霞賈江凱
小型微型計算機系統 2018年12期
關鍵詞:方法模型

唐 勇,安陽陽,張 豆,劉宇涵,任小霞,賈江凱

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

1 引 言

隨著人們生活水平的不斷提高,衣著品味越來越不同,搭配也就變得越來越重要.搭配不僅需要顏色上的混合,還要配合不同的材質才能表現出的豐富形態.由于異質布料的屬性不同,運動過程中會表現出不同的姿態,使得在同一場景中動態繪制異質布料變得非常困難.

布料的材質模擬一直是計算機圖形學研究的重要內容.1997年法國國家信息與自動化研究所Provot等人,用剪切彈簧、彎曲彈簧和結構彈簧模擬布料質點的受力[1],通過調節彈簧系數來模擬不同材質的布料,但彈簧力的變化是非線性的,會發生超彈現象;2012年NVIDIA的PhysX研究小組的Tae-Yong Kim等人,提出了一種LRAs(Long Range Attachments)模型[2],通過將布料所有質點直接與固定點相連的方法,有效解決了布料的超彈現象,但缺乏對自由質點的控制.2007年Müller等人,提出一種基于位置的運動學模擬方法(PBD-Position Based Dynamics)[3],將布料的屬性抽象為約束模型,通過約束投影的方法直接修改布料質點的位置.德國亞琛大學的Jan Bender教授和NVIDIA 的Müller等人,對PBD做過綜述性的介紹[4],由于其通用性、簡便性和魯棒性,現已經應用到Maya、PhysX引擎、Havok引擎、Bullet引擎,還普及到了電影和醫療仿真等領域,包括有柔體、可變性物體、流體和毛發等模擬.2015年,王華民提出了切比雪夫多項式加快PBD約束投影計算的方法[5],是目前為止最快的基于CPU運算的方法.Macklin等人在2016年提出XPBD[6],將能量的概念引入PBD中,通過立即修改約束方程的拉格朗日乘子,而不是將其拋出待到所有約束迭代結束后再計算的方法,有效的解決了PBD長期存在的約束剛度依賴迭代次數問題.2016年NVIDIA的Chentanez等人在PBD的基礎上,采用Shape Matching方法[7]實時模擬了彈塑性材料物體的形變.2017年賓夕法尼亞大學的劉天天等人,將投影運動學方法(Projective Dynamics)推導為準牛頓問題,使用L-BFGS來近似Hessian矩陣[8],實時模擬超彈性材質.同樣來自賓夕法尼亞大學的蔣陳凡夫等人,也模擬了非常豐富的各向異性的彈塑性布料[9].但是,上述方法僅適用于同一場景中的同質布料的模擬,而異質布料的繪制不僅需要保證同一布料不同約束間的獨立性,還要確保不同布料間的獨立性.同時,統一設定約束迭代次數又會造成計算資源的不合理分配.

針對上述問題,提出一種動態繪制異質布料的方法.首先,引入自由質點約束因子改進PBD中的LRAs模型,通過屬性約束構建異質布料模型;在XPBD的基礎上,根據場景中約束重要性的不同設置不同的迭代次數,以獨立迭代的方式計算各約束,保證不同布料的迭代獨立,合理分配計算資源;并用Jacobi方法替代Gauss-Seidel方法,以并行的方式計算影響質點的約束,提高解算器計算速度.

2 構建異質布料

布料材質不同是由屬性不同引起的,可以通過調節屬性來繪制異質布料.本文根據布料屬性建立不同的屬性約束模型,通過屬性約束構建異質布料模型.

圖1 LRAs模型Fig.1 LRAs model

LRAs[4]通過限制附著點與自由質點的距離來解決超彈問題.如圖1,深色點為固定點,空心點為自由質點.在布料運動過程中,初始狀態為path0,以固定點為中心,以與自由質點的距離為半徑,在半徑范圍內自由移動,如果超出范圍則修改質點的位置,如path1灰色點為修正的位置.

但是在滿足LRAs條件下,自由質點間也會產生過度拉伸,如左下方path2所指線段,距離遠大于初始距離,效果如圖2(b).為此添加自由質點約束因子,避免自由質點間的距離過長.

Cfixed(pj,pfixed)=|pj-pfixed|-lj-fixed·l

(1)

Cadj(pj,pj-adj)=|pj-pj-adj|-lj-adj·l

(2)

方程(1)為LRAs的約束方程,Pj為自由質點,Pfixed為固定點,lj-fixed為自由質點與固定點的初始距離.方程(2)是自由質點與相鄰質點的約束因子方程,Pj-adj(≠Pfixed)是自由質點相鄰的節點,lj-adj為自由質點間的初始距離.其中l為拉伸系數.在計算過程中不斷修改質點的位置,使其同時滿足上述兩個約束方程.

圖2所示,(a)為文獻[2]中采用LRAs方法繪制的布料,(b)為未解決的超彈問題,(c)改進后繪制的布料.通過拉伸系數l的調節可以繪制出不同彈性的布料,如(d)、(e)、(f).

圖2 改進的LRAs解決布料超彈Fig.2 Improved LRAs model to solve the super bombs

除此之外,還要創建彎曲、碰撞、重力、摩擦等約束.最終,通過布料屬性構建的約束模型構建異質布料模型.

3 異質布料求解

在對異質布料求解過程中,除了解決約束剛度與迭代次數的依賴關系,即在求解過程中保證同一布料約束間互不干擾,還要保證不同布料間屬性調節的獨立性,比如需要對不同布料的拉伸系數或彎曲系數等進行不同參數設定.

3.1 獨立迭代

文獻[3,6]對各個不同的屬性約束設定統一的迭代次數,但不同的場景約束屬性的迭代要求是有區別的.比如碰撞時,為避免穿透需要對碰撞約束設置更高的迭代次數,以實現精確碰撞,而對拉伸和彎曲約束要求就低一些;再如為了繪制懸垂布料,需要對拉伸和彎曲約束迭代多次,碰撞約束基本不用考慮.

為此,對場景中不同布料的各種約束進行獨立迭代計算,設計了算法1,其中第4-12行完成每種屬性約束迭代計算,通過調節第5行中的屬性約束迭代次數,實現異質布料在同一場景中的快速繪制.

(3)

其中ni為質點i的約束數量,ω[1,2]為外部可設置的全局變量,用于控制過度松弛速率.通過Jacobi方式并行迭代計算各個屬性約束,加快異質布料的繪制速度.

3.2 調節因子

為了繪制異質布料,為每個約束模型添加一個調節因子.設拉伸因子為l[1,2],抗彎曲因子為k[0,0.1],摩擦因子為μ[0,1],異質布料的繪制就通過控制各類調節因子實現,最終約束模型擴展為C(x,e).質點的位置變化公式為:

(4)

其中e為不同屬性的調節因子l,k,μ.

算法1.simulation loop

3:initialize multipliersλ0?0

4:for all constraints do

5: whilei< solverIterations do

6: computeΔλ

7: computeΔX

8: updateλi+1?λi+Δλ

9: updateXi+1?Xi+ΔX

10:i?i+1

11: end while

12:end for

14:update positionsXn+1?Xi

4 實驗結果與分析

為了驗證異質布料繪制方法的有效性,以C++為主,配合使用C#和JavaScript,結合Unity物理引擎開發平臺建立了異質布料仿真實驗系統,并在不同操作系統和硬件條件下進行了多項對比實驗.

圖3為通過調整拉伸系數l、彎曲系數k和摩擦系數μ,在同一場景中繪制出粗麻、絲綢、織錦、條絨和粗布等5種異質布料,并且將這5種材質布料與小球進行碰撞.從圖中可以看出,通過添加的屬性約束調節因子,有效地繪制出同一場景中的異質布料.

圖3 本文方法構建的異質布料Fig.3 This paper constructs heterogeneous fabrics

圖3中每種布料包含6.1k個頂點、10.7k個三角形,5種布料碰撞過程中每一幀繪制所花費的時長如圖4,其中x軸是幀數,y軸是時間(ms),z軸為5中不同材質布料.圖4所示異質布料因屬性約束不同所耗費的時間是有差異的.

圖4 異質布料碰撞曲線Fig.4 Heterogeneous fabric collision curve

圖5為文獻[3]和文獻[6]的GS+統一迭代、本文的GS+獨立迭代、文獻[4]的Jacobi+統一迭代和本文的Jacobi+獨立迭代四種方法在繪制時間上的對比結果.統一迭代中將所有約束迭代次數設置為8,在碰撞處理占主要計算負荷的場景中,獨立迭代中只將碰撞約束次數設置成8,而其它約束次數設置為2.從圖6中可以看出在視覺效果相似的情況下,無論是對GS還是Jacobi,獨立迭代方式的計算都明顯快于統一迭代方式,而且本文方法(Jacobi+獨立迭代)速度最快.

圖5 本文方法與文獻[3,4,6]方法時間對比Fig.5 Compared with the results of[3,4,6]

如圖6所示,采用本文方法(Jacobi+獨立迭代)對異質布料間的碰撞進行繪制,并與文獻[10]對比,從圖中可以看出相比于同質布料的碰撞,異質布料的碰撞能表現出更豐富的姿態.并對圖6(b)中異質布料的碰撞進行了不同平臺的測試,見表1,硬件和操作系統的不同會對繪制的速度造成影響.

圖6 本文方法與文獻[3][4][6]方法效果對比Fig.6 Compared with the results of[3][4][6]

由以上對比實驗可以看出,本文方法能夠建立異質布料的獨立約束模型,通過并行方式配合獨立迭代方法加快求解速度,快速地繪制出同一場景運動過程中的異質布料.

5 結 論

本文提出了一種快速繪制運動過程中異質布料的方法.其中,引入自由質點約束因子改進LRAs模型,通過屬性約束構建異質布料模型;在XPBD解決剛度依賴迭代次數的基礎上, 設計獨立迭代計算方法, 在保證同一布料不同屬性間互不干擾的同時, 根據場景需求不同, 設置不同的迭代次數, 優化計算資源分配; 采用Jacobi方法, 對異質布料以并行方式進行計算, 加快了方程求解速度. 今后我們將對異質布料在GPU上的并行繪制進行研究, 來進一步提高異質布料的繪制速度.

表1 不同平臺下三種異質布料碰撞
Table 1 Different heterogeneous fabric collisions on different platforms

系統CPUGPU網格分辨率幀速率(ms/幀)win10i7-4790 3.6GHz 8GGT 630 2G 700MHz129.6k393.9win10FX9590 4.72GHz 16GR9 290X 8G 1000MHz三角形582.5OS Xi5-6600 3.2GHz 8GR9 M390 2G 1000MHz66.9k270win8i7-5820k 3.3GHz 16GGTX1070 8G 1632MHz頂點326.2

圖7 異質布料碰撞Fig.7 Heterogeneous fabric collision

猜你喜歡
方法模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
學習方法
3D打印中的模型分割與打包
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 国产久草视频| 国产成人免费手机在线观看视频| 亚洲精品动漫| 日韩成人在线一区二区| 2021精品国产自在现线看| 欧美在线一二区| 国产精品高清国产三级囯产AV| 日韩一级毛一欧美一国产| 亚洲网综合| 青草精品视频| 国产区在线观看视频| 人人妻人人澡人人爽欧美一区| 91成人免费观看在线观看| 91系列在线观看| 精品午夜国产福利观看| 国产香蕉一区二区在线网站| 九九热精品在线视频| 91亚洲精选| 亚洲人成色在线观看| 91精品伊人久久大香线蕉| 又爽又大又光又色的午夜视频| 国产免费福利网站| 一边摸一边做爽的视频17国产| 波多野结衣视频一区二区| 色哟哟国产精品一区二区| 国产精品人人做人人爽人人添| 夜精品a一区二区三区| 天堂av高清一区二区三区| 国产18在线播放| 91久久国产综合精品| 中国丰满人妻无码束缚啪啪| 成人精品视频一区二区在线| 午夜在线不卡| 日韩美女福利视频| 欧美伊人色综合久久天天| 青青草综合网| 97久久精品人人| 青青网在线国产| 国产成人高清精品免费5388| 久久这里只有精品2| 国产污视频在线观看| 99久久精品国产自免费| 亚洲日本一本dvd高清| 亚洲人人视频| 国产欧美精品一区aⅴ影院| 毛片免费在线视频| a级毛片免费看| 国产成+人+综合+亚洲欧美| 亚洲视频二| 国产SUV精品一区二区| 高潮毛片无遮挡高清视频播放 | 91精品小视频| 久久久久国产一级毛片高清板| 亚洲人网站| 国产成人AV综合久久| 99这里精品| 九月婷婷亚洲综合在线| www.国产福利| 精品欧美一区二区三区久久久| av午夜福利一片免费看| 亚洲精品视频免费看| 在线欧美日韩| 再看日本中文字幕在线观看| 欧美视频在线播放观看免费福利资源| 亚洲人成成无码网WWW| 亚洲国产中文欧美在线人成大黄瓜 | 国产精品任我爽爆在线播放6080| 亚洲中文字幕无码mv| 国产欧美在线| 国产第一色| 国产男人天堂| 91黄视频在线观看| 99免费视频观看| 国产三区二区| 国产91透明丝袜美腿在线| 亚洲AV无码不卡无码 | 日本在线免费网站| 67194亚洲无码| 日韩人妻精品一区| 午夜啪啪网| 日本国产精品一区久久久| 天天干伊人|