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

一種基于GPU的彈坑實時繪制方法

2016-12-01 06:56:18鄭顧平張榮華
圖學學報 2016年4期
關鍵詞:物理方法

鄭顧平, 邢 玥, 張榮華

(華北電力大學控制與計算機工程學院,河北 保定 071003)

一種基于GPU的彈坑實時繪制方法

鄭顧平, 邢 玥, 張榮華

(華北電力大學控制與計算機工程學院,河北 保定 071003)

為解決動態地形繪制過程中高逼真性與實時性這一矛盾,提出一種基于GPU的動態地形實時繪制方法。首先基于Geometry Clipmaps算法構建地形層次結構,然后在更新過程中引入真實物理模型與過程紋理映射相結合方法,以使最終繪制的地形達到更為逼真的效果。為驗證該方法的有效性,模擬了炮彈在草地上爆炸形成的彈坑效果,并與基于ROAM算法繪制的彈坑效果在繪制三角形數量、平均幀速率及CPU占用率3個方面做了對比。實驗結果表明,所提方法能夠有效減少繪制的三角形數量,并能獲得較高的幀速率及逼真度,滿足動態地形繪制對于高逼真性和實時性的要求。

動態地形;Geometry Clipmaps;物理模型;過程紋理映射;可編程GPU

高逼真度虛擬環境的建立是虛擬現實技術的核心內容,而地形是虛擬環境中不可或缺的重要組成部分。相對于靜態地形,動態地形更具有其特殊性,地形需要根據仿真實體(如車輛、炮彈、行人等)與地面的交互而發生物理上的實時更新,這種改變不僅發生在繪制階段,而且系統在底層所維護的數據

結構也要基于特定的物理模型而實時改變[1]。因此,高逼真動態地形繪制對實時性提出了更高的要求。

目前對于動態地形實時繪制技術的研究主要集中在兩方面:一是如何有效管理地形的海量數據;二是地形形變策略的選擇。對于第一點,目前主流的做法是采用細節層次模型(level of detail, LOD)。LOD算法能夠有效地減少繪制的三角形數量,但現有的LOD算法[2-5]都局限于靜態地形的領域。對于第二點的研究主要有基于物理和外觀兩種方法?;谖锢淼姆椒╗6]能夠精確地模擬地表真實的運動,但需要大量的精確計算,占用過多CPU資源。而基于外觀的方法則放棄了復雜的計算精度,以紋理貼圖的方式達到可以接受的視覺假象,但達不到動態地形繪制對高逼真度的要求。如何在地形逼真度和模型復雜度之間取得較為理想的平衡成為解決這一問題的關鍵。

基于上述分析,本文圍繞解決動態地形繪制的高逼真性與實時性這一矛盾,提出了一種基于GPU的動態地形實時繪制方法。首先基于Geometry Clipmaps算法構建地形層次結構;隨后提出了一種基于GPU的地形形變策略,將物理模型與過程紋理映射相結合對地形產生的形變位置進行實時更新;最后在繪制階段通過頂點紋理獲取技術生成實時更新的彈坑效果。實驗結果表明,本文提出的方法與ROAM算法相比,能夠有效減少繪制的三角形數量,并獲得較高的幀速率及逼真度,將大量計算轉移到GPU中,滿足動態地形對于高逼真性和實時性的要求。

1 基于 GPU的 Geometry Clipmaps算法

基于 GPU的實時繪制已成為大規模地形繪制算法的一個趨勢,近年來也出現了一些GPU友好的地形繪制算法,如 Geometrical M ipmapping[7],GPU-Based Geometry Clipmaps[8],小波變換[9]等算法。本文使用2004年Losasso和Hoppe[8]提出的基于GPU的Geometry Clipmaps地形繪制算法。傳統的ROAM算法[10]采用層次結構來存儲地形的幾何數據,地形高程值和層次結構的更新完全由 CPU來動態維護,不適用于大規模的動態地形實時繪制。而Geometry Clipmaps算法是一種新的符合地形幾何特性的層次數據結構,可以將地形結構以2D紋理形式存儲在 GPU中。可將地形緩存到一組嵌套的規則網格中,其中心為視點所在位置,并隨視點的移動而移動。由于可將地形分級合成到不同等級的幾何剪切圖上,因此可以借助頂點紋理獲取技術(vertex texture fetch, VTF)在GPU中快速地更新和繪制。相對于ROAM算法,Geometry Clipmaps算法結構更加簡單,退化更加快速合理,繪制地形所需要的運算均可在GPU內部完成,CPU只處理簡單的運算,實現了將大量的計算從 CPU轉移到GPU中,可滿足大規模地形繪制對實時性的要求。

基于GPU的Geometry Clipmaps所使用的數據結構可以存儲在頂點紋理中,這樣二維的地形網格和頂點紋理之間可進行方便的映射。剪切圖分為L層,每層包含N×N個幾何數據采樣點,每個采樣點包含3個數據(x, y, z),x,y坐標由頂點緩沖存儲。這個頂點緩沖可以在初始化時一次性發送到GPU中,并由其實現,所以后期不需要CPU進行干預更新。z坐標存儲在一張單通道高程紋理中。N的大小選擇2的冪減1,這種處理方式具有一定的優勢。首先硬件只能處理 2的冪次方的紋理,使用2k-1可以最大程度利用2k×2k的頂點紋理。在繪制時留最右一列和最下一行不用。其次,因每層剪切圖的邊界需落在下一個比較粗糙的層的網格上,若選擇兩個層的中心不對齊,就可使精細層在粗糙層的中心位置進行一定的偏移。這樣可以不用更新全部的粗糙層數據,這對于提高更新效率很重要。例如,選擇N為255,此時僅需要4層就可以覆蓋1024×1024范圍的高程圖。圖1為系統實現所用到的地形剪切圖,依次為從第 0層至第3層,最后一張為地形的真實高程圖。

圖1 地形生成的Clipmaps剪切圖

2 基于GPU的地形形變策略

2.1 彈坑物理模型

動態地形與靜態地形的區別在于其交互性以及地形結構的實時變化,而地形結構的實時變化

是由于仿真實體與地形交互產生的。因此,為了逼真地模擬現實世界中的現象,首先要提出合理的物理模型。文獻[11]給出了一種彈坑基本物理模型,如圖2所示。

圖2 彈坑基本物理模型剖視圖

彈坑內部高程值的偏移量計算公式如下

其中,C1為與地形表面特性相關的半徑系數,C2為與地形表面特性相關的深度系數,A為爆炸物質的當量。在現實生活中,彈坑的幾何形狀以及彈坑的方向與爆炸沖擊力的方向有關。為了使仿真結果更加真實,本文使用改進的橢圓形彈坑物理模型,如圖3[11]所示。

圖3 改進的彈坑物理模型俯視圖[11]

2.2 過程紋理映射

當實時繪制動態地形時,僅改變地形的頂點數據不足以逼真地展現地形的細節形變,還需對形變位置的非幾何屬性(如地形紋理等)做出相應的改變。文獻[1]提出了繪制地形變形映射圖的方法,該方法對整張高程圖進行更新,而在實際應用中,為了滿足系統的實時效率,僅需要更新發生形變位置的地形紋理。因此,本文引入了基于片元著色器的動態地形過程紋理映射方法。

下面以炮彈在草地上留下的彈坑為例來說明本文的動態地形過程紋理映射方法。首先將更新后的紋理分成 3個區域,新紋理區域、過渡紋理區域和舊紋理區域,如圖4所示。

圖4 過程紋理示意圖

由于彈坑中心區域受到的爆炸沖擊最大,所以越靠近彈坑中心,地形形變越明顯,頂點顏色的取值主要依賴新紋理區域。相反,越靠近彈坑的邊緣區域,地形形變越微小,頂點顏色的取值主要依賴舊紋理區域。因此,本文用頂點到彈坑中心的距離d作為參數,對兩種基本紋理圖的元素顏色值進行加權平均運算。設權值為Pd,計算過程如下:

經上述方法得到的紋理混合效果如圖5所示。

圖5 紋理混合示意圖

3 動態彈坑繪制

3.1 動態彈坑繪制流程

為了驗證提出方法的有效性,本文模擬了炮彈在草地上形成的彈坑效果。動態彈坑繪制流程圖(圖6),主要分為3部分:地形初始化、地形更新以及彈坑渲染。

地形初始化主要是基于第 1節介紹的Geometry Clipmaps算法構建地形的層次結構,以及設備的初始化和頂點、索引緩沖區的填充。下面詳細介紹地形更新及地形渲染。

3.1.1 地形更新

更新部分是動態彈坑繪制的關鍵部分,需要獲取各種輸入設備的交互信息并進行處理。由于2.2節介紹了過程紋理映射方法,下面重點介紹幾何剪切圖的更新。

隨著視點的移動,每個剪切圖窗口在其的視見體棱錐層內進行平移,并保持以當前視點在地面投影位置為中心。由于精細層和粗糙層的中心不對齊,所以較精細層可以在粗糙層內進行一定的偏移。視點的運動是連續的,每一幀只需要處理一個小的L層區域。視點的相對運動從第0層到第 L-1層呈指數級減少,大部分更新只對較精細層進行。

更新中要進行剪切圖的平移。為了避免數據的平移,本文在 Hoppe環形訪問方式的基礎上,分3部分更新剪切圖,如圖7所示。A、C兩部分是由于視點在Z軸方向上運動產生的,B部分是視點在 X軸方向上運動產生的。更新時,先渲染 B區域,然后對于在 Z軸方向運動產生的區塊,不重復渲染B部分,只渲染A、C兩部分。使用這種方式,可有效避免重復更新剪切圖數據。

圖6 動態彈坑繪制流程

圖7 更新區域示意圖

3.1.2 彈坑渲染

利用可編程GPU繪制成流水線完成彈坑的渲染,使用著色器程序在頂點著色器和片元著色器中進行處理。頂點著色器的主要作用是獲取剪切圖層作為輸入,通過讀取每個點所記錄的整數部分和小數部分,然后通過計算混合參數來混合兩個高程得到最終的高度。片元著色器通過法線圖的紋理對地形進行光照的計算,再根據頂點著色器傳入的紋理混合參數成為像素點混合紋理。

在高程數據渲染中,不同層次的連接處容易

產生T型裂縫,Geometry Clipmaps算法采用過渡帶來消除T型裂縫。即在每層Clipmaps外圍引入一個過渡區域,再對其進行精細層和相鄰粗糙層的高程混合。設取樣的位置為(x,y),視點位置為(vx,vy),混合參數的計算如下

ay的計算也如此,ω是過渡寬度,取N/10。然后在當前精細層的高程zf和粗糙層的高程zc之間進行線性插值

粗糙層的點的獲取,需通過計算邊緣上兩個端點樣本的平均值獲得

為了簡化,可直接讀取當前紋理層的 2個位于粗糙層上的點并取平均值。這些點和粗糙層相對應的點的高程是相同的,可以免去直接采樣粗糙層樣本。方法如圖8所示,對于取樣的點(圖中紅色空心圓)(x, y),先對其坐標對 2取模。得到(modx,mody),然后取樣點的坐標為

圖8 粗糙層采樣說明

3.2 彈坑繪制環境

本實驗使用一張1024×1024的dds格式高程圖,地形的大小為4 MB。將L設為4,N設為255,這樣第 4層 L3就能覆蓋整個地形。實驗在 Intel Core2 Duo T6600 2.20 GHz,2 G內存,NVIDIA GeForce G 105 M顯卡配置的計算機上測試。在地形靜止時可達到平均81幀/秒的繪制速率,當繪制彈坑地形時其平均幀率為63 fps。

3.3 彈坑繪制結果及分析

為了驗證本文提出的基于GPU的動態地形繪制方法的有效性,在同一平臺上將文獻[10]基于ROAM算法與本文繪制結果作對比,如圖9~11所示。由圖9可以看出,文獻[10]由于未引入真實物理模型計算彈坑形變量,繪制出的彈坑邊緣不符合現實的物理法則,且彈坑內部的紋理并沒有根據土壤的性質發生改變。由圖10、11可以得出,本文使用的基于物理模型的方法可以適用于不同情況下的動態彈坑繪制,且繪制出的彈坑形狀更加符合自然規律。而過程紋理的引入使彈坑效果更加真實、多樣,符合動態地形繪制對高逼真度的要求。

圖9 文獻[10]方法繪制的彈坑效果圖

圖10 本文方法繪制的彈坑效果圖

圖11 本文方法繪制的有方向彈坑效果圖

此外,為了驗證本文方法能夠滿足動態地形繪制對實時性的要求,對兩種方法在繪制三角形數量、形變時的平均幀速率以及CPU占用率3個方面進行了對比,結果如圖12~14所示。由圖12可以看出,在同一視點位置下,由于ROAM算法繪制的三角形數量與視點位置有關,而Geometry Clipmaps算法將地形嵌套成一組規則的網格,每次只需更新剪切層窗口大小的區域,因此,使用Geometry Clipmaps算法構建的地形結構能夠有效地減少繪制的三角形數量。此外,在地形發生形變時,由于本文方法將大量計算由CPU轉移到GPU中完成,繪制出的彈坑效果能夠獲得更高的幀速率,且占用較少的CUP資源,滿足動態地形繪制對實時性的要求。

圖12 繪制三角形個數對比圖

圖13 平均幀速率對比圖

圖14 CPU占用率對比圖

4 結 論

為有效解決高逼真動態地形的實時繪制問題,本文在Geometry Clipmaps算法構建地形結構的基礎上,提出了真實物理模型與過程紋理相結合的方法,將大量的計算過程移植到GPU中,充分發揮了現代GPU的強大圖形渲染功能。實驗結果表明,本文提出的方法能夠有效減少繪制的三角形數量,在保證地形繪制實時性的前提下,能夠得到較為逼真的仿真結果,滿足動態地形繪制對高逼真度和實時性的要求。下一步的研究重點在于將有限元方法應用到動態地形實時繪制中,不僅在地形更新過程中應用有限元方法,在物理模型仿真過程中也應用有限元的相關方法,以得到更為高效的繪制效果。

[1] 張榮華. 基于GPU的動態地形實時繪制技術的研究與實現[J]. 計算機工程與設計, 2010, 31(20): 4434-4437.

[2] 孟 放, 查紅彬. 基于LOD控制與內外存調度的大型三維點云數據繪制[J]. 計算機輔助設計與圖形學學報, 2006, 18(1): 1-8.

[3] 劉曉平, 凌 實, 余 燁, 等. 面向大規模地形 LOD模型的并行簡化算法[J]. 工程圖學學報, 2010, 21(5): 16-21.

[4] Kang L, Wu L D, Yang B, et al. Large-scale terrain simplification and visualization based on TIN [J]. Computer Aided Drafting, Design and Manufacturing, 2008, 18(2): 1-8.

[5] 鄭 新, 劉 瑋, 呂辰雷, 等. 海量地形實時動態存儲與繪制的 GPU實現算法[J]. 計算機輔助設計與圖形學學報, 2013, 25(8): 1146-1152.

[6] Chen X, Zhu Y. Real-time simulation of vehicle tracks on soft terrain [C]//Advances in Visual Computing. Berlin: Springer Heidelberg, 2013: 437-447.

[7] de Boer W. Fast terrain rendering using geometrical mipmapping [EB/OL]. [2009-10-15]. http://www. flipcode.com/articles/article_geom ipmaps.shtm l.

[8] Losasso F, Hoppe H. Geometry clipmaps: terrain rendering using nested regular grids [C]//Proceedings of ACM Transactions on Graphics. New York: ACM Press, 2004: 769-776.

[9] 陳國軍, 徐曉莉, 張 晶, 等. 基于B樣條小波的動態地形實時繪制[J]. 工程圖學學報, 2009, 30(1): 59-65.

[10] 張榮華. 基于 ROAM 算法的彈坑實時可視化系統設計[J]. 系統仿真學報, 2006, 18(2): 511-516.

[11] 王 達. 虛擬戰場中一種基于 GPU的大規模動態地形仿真研究[D]. 武漢: 華中科技大學, 2012.

A Real-Time Crater Rendering Method Based on GPU

Zheng Guping, Xing Yue, Zhang Ronghua

(School of Control and Computer Engineering, North China Electric Power University, Baoding Hebei 071003, China)

In order to solve the problem on high fidelity and real-time during the dynamic terrain rendering process, a real-time rendering method of dynam ic terrain is proposed based on programmable GPU. First, the terrain hierarchy is constructed based on Geometry Clipmaps algorithm. Second, a dynamic terrain rendering method is introduced to achieve a more realistic effect on the final terrain based on real physical model and processing texture mapping during updating process. Finally, the crater effect formed on the lawn is simulated to verify the effectiveness of the method. And the proposed method is compared w ith the method based on ROAM on amount of draw ing triangles, the average frame rate and CPU usage. The experiments results show that the proposed method can reduce the amount of draw ing triangles effectively, and achieve higher frame rates and fidelity. The requirements of high fidelity and real-time in dynam ic terrain rendering can be meted.

dynam ic terrain; Geometry Clipmaps; physical model; processing texture mapping; programmable GPU

TP 391.9

10.11996/JG.j.2095-302X.2016040451

A

2095-302X(2016)04-0451-06

2015-09-03;定稿日期:2016-01-26

國家自然科學基金項目(51407076);河北省自然科學基金項目(F2014502050)

鄭顧平(1960?),男,河北石家莊人,教授,博士。主要研究方向為計算機仿真、分布式系統和人工智能。E-mail:zhengguping@126.com

邢 玥(1990?),女,吉林白城人,碩士研究生。主要研究方向為計算機圖形學、虛擬現實。E-mail:machange2013@sina.cn

猜你喜歡
物理方法
只因是物理
井岡教育(2022年2期)2022-10-14 03:11:44
如何打造高效物理復習課——以“壓強”復習課為例
處處留心皆物理
學習方法
我心中的物理
三腳插頭上的物理知識
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 久久免费看片| 97国内精品久久久久不卡| 亚洲成人精品久久| 成人欧美日韩| 国产精品一线天| 国产精品网址在线观看你懂的| 毛片免费网址| 日本a级免费| 亚洲黄色成人| 四虎AV麻豆| 国产91精选在线观看| 香蕉色综合| 波多野结衣一区二区三视频| 99热这里只有精品在线观看| 秋霞国产在线| 国产精品亚洲综合久久小说| 老色鬼欧美精品| 欧美日韩高清在线| 一级毛片基地| 99免费视频观看| 国产男人的天堂| 青青操视频免费观看| 四虎永久免费地址在线网站 | 国产一级二级在线观看| 久久男人视频| AV在线天堂进入| 亚洲中文字幕在线观看| 国产18在线播放| 色天天综合久久久久综合片| 无码国产伊人| 欧美www在线观看| 欧美日韩一区二区三区在线视频| 日韩午夜福利在线观看| 亚洲侵犯无码网址在线观看| 国产永久在线视频| 免费人成黄页在线观看国产| 久久无码av一区二区三区| 亚洲国产欧美国产综合久久 | 亚洲一级无毛片无码在线免费视频| 国产亚洲日韩av在线| 国产熟女一级毛片| 国产精品页| 一本视频精品中文字幕| 免费人成视频在线观看网站| 无码粉嫩虎白一线天在线观看| 91欧美亚洲国产五月天| 色欲色欲久久综合网| 国产午夜精品一区二区三| 1级黄色毛片| 精品国产自| 国产靠逼视频| 一级爆乳无码av| 日本在线欧美在线| 99精品视频在线观看免费播放| 日韩二区三区无| 日本在线免费网站| 国产欧美日韩免费| 亚洲aaa视频| 2021国产精品自产拍在线| 亚洲永久色| 国产特一级毛片| 亚洲成人免费在线| 国产微拍一区| 国产精品无码AⅤ在线观看播放| 91网在线| 8090成人午夜精品| 中文字幕66页| 美女一级毛片无遮挡内谢| 91久久精品日日躁夜夜躁欧美| 欧美亚洲一区二区三区导航| 992tv国产人成在线观看| 永久免费无码日韩视频| 免费无码在线观看| 成人欧美在线观看| 亚洲成肉网| 亚洲va在线∨a天堂va欧美va| 日本不卡免费高清视频| 2020最新国产精品视频| 动漫精品啪啪一区二区三区| 国产欧美在线| 欧美a级在线| 日韩欧美高清视频|