国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

三維城市模型重復紋理合并方法研究

2015-07-04 13:00:38詹勇重慶市勘測院重慶400020
城市勘測 2015年6期
關鍵詞:三維模型

詹勇(重慶市勘測院,重慶 400020)

三維城市模型重復紋理合并方法研究

詹勇?
(重慶市勘測院,重慶 400020)

摘 要:由于現有三維引擎在處理重復紋理時,是對整張紋理進行重復,而不是對紋理中的部分內容進行重復,因此當紋理合并后,原來被用來重復貼圖的單張紋理成了合并后紋理的一部分,而無法表示正確的重復貼圖。本文針對該問題,研究了剖分模型、合并重復貼圖以及RTT(Render To Texture)三種紋理合并方法,開展了對比試驗。最后,在三維場景中開展了紋理合并實驗,驗證了合并紋理能有效地提高場景加載與渲染效率。

關鍵詞:三維模型;重復紋理;紋理合并;幀率

1 引 言

城市級的三維模型數據通常達上百GB乃至TB 級,如何實現海量三維模型數據的快速加載與漫游一直是三維技術應用的關鍵問題,現有方法包括模型組織與優(yōu)化、空間索引以及場景調度方法等[1]。影響三維場景渲染幀率的一個重要原因是紋理渲染狀態(tài)的切換,圖形處理單元GPU(Graphics Process Unit)是按批次對三角面進行渲染,只有渲染狀態(tài)相同的三角面才會在同一批次被渲染[2]。因此,減少渲染狀態(tài)的切換能夠充分利用GPU性能。通過紋理的合并,可以減少場景使用的紋理數量,從而達到減少紋理狀態(tài)切換,獲得更高渲染幀率。

在紋理合并方法方面,國內外都有相應的研究[3,4],NVIDIA公司提供了texture tools工具箱[5]用于自動合并文件夾內紋理,戴雪峰[6]等研究了基于貪心算法和模擬退火算法的三維城市模型多紋理合并方法,紋理合并結果趨于全局最優(yōu),宋歌[2]等利用動態(tài)空間分配算法將模型中的紋理以最小空間代價合并為數個大紋理,杜志強[7]等提出了基于超面的建筑物紋理優(yōu)化處理方法等。

本文在開展紋理合并的研究過程中,遇到了重復紋理的合并問題。由于現有三維引擎(如Direct3D和OpenGL等)的原因,紋理重復都是對整張紋理進行重復,而不是對紋理中的部分內容進行重復。因此當紋理合并后,原來被重復貼圖的單張紋理成了合并后紋理的一部分,而無法表示正確的紋理坐標,因而無法表示正確的重復貼圖。本文針對該問題,研究了剖分模型、合并重復貼圖以及RTT(Render To Texture)三種紋理合并方法,開展了對比試驗。最后,在三維場景中開展了紋理合并實驗,驗證了合并紋理能有效地提高場景加載與渲染效率。

本文涉及的部分術語定義如下:

合并前模型:是指按照一般三維建模規(guī)范建立的三維模型,包含一個幾何模型及其采用的多張紋理,通常存在重復紋理貼圖。

圖片合并:僅處理模型圖片,將多張圖片合并成一張或幾張圖。

紋理合并:通過圖片合并,并結合修改模型頂點或紋理坐標等,減少紋理使用數量。

重復紋理:本文所指的重復紋理不是指一張紋理被多個模型共用,而是指對一個面進行紋理貼圖時,使用的紋理圖片進行了多次重復(具體例子見2.2節(jié)),其基本特征是紋理坐標超出了[0,1]。

重復紋理合并:是指模型存在重復紋理貼圖的情形下的紋理合并。

模型紋理分辨率:與影像的空間分辨率意義一致,描述模型使用紋理的清晰度。

2 紋理合并涉及的主要問題

2.1紋理合并及紋理坐標表示方法

圖片合并的方法可采用手工、計算機自動拼圖等方式,這里不做過多說明。難點是如何將合并前貼圖的紋理坐標,修正成使用合并后貼圖的紋理坐標。將圖1中紋理A和紋理B經過圖片合并得到新紋理C,使用紋理C替換紋理A和B時,使用紋理C的模型紋理坐標按如下公式進行。

圖1 紋理合并后的坐標表示

其中,u1,v1是模型使用原圖A或B的紋理坐標, u2,v2是使用紋理C的紋理坐標。ustart和vstart是A 或B在紋理C中的起始點位置,width和height分別是在紋理C的寬度和高度。

2.2重復紋理的坐標表示問題

例如對某一地面利用圖1中紋理A,重復平鋪得到了整個地面的紋理貼圖,如圖2(a),紋理坐標超出了[0,1],即為本文所指的重復紋理。利用合并后的貼圖(圖1中紋理C)中的右半部分來表示圖2(a),即為本文所指的重復紋理坐標表示。

當紋理坐標超出[0,1],即產生紋理重復時,現有三維引擎(如Direct3D和OpenGL等)都是對整張紋理進行重復,而不會對紋理中的部分內容進行重復,即,利用圖1中紋理C的右半部分,重復2次來表示圖2(a),僅修改紋理坐標是不可行的,原因是引擎限制,不存在一個正確的紋理坐標實現紋理中部分內容的重復。若按公式(1)進行處理,得到的結果如圖2(b)所示,與圖2 (a)不同。因此,本文提出以下幾種方法進行修正。

圖2 紋理重復表示法

3 三維模型重復紋理合并

對于紋理坐標超出[0,1]的重復紋理,通過以下方式,將紋理坐標修正到[0,1],進一步按公式(1)或其他方式計算出采用新紋理后的紋理坐標,進而實現重復紋理合并。

3.1剖分模型法

剖分模型法是將模型按紋理坐標的重復次數進行剖分,保證紋理坐標的取值范圍在[0,1]之間,如圖3所示。矩形面重復了3次紋理單元,剖分模型法將矩形面按紋理坐標分成三部分,每部分分別進行一次紋理貼圖。

圖3 剖分前后的模型紋理坐標

具體方法包括手工和計算機處理。將合并前模型進行剖分后,在剖分面手工重復貼圖即可。計算機處理則是根據重復紋理坐標對模型進行自動剖分,并采用式(1)進行坐標處理,達到紋理合并的目的。

3.2合并重復貼圖

該方法是不改變模型幾何結構,在圖片合并時,先將使用的重復紋理貼圖進行合并后,再進一步與其他圖片進行合并,如圖4所示。

圖4 合并重復貼圖后貼圖

利用手工制作重復合并后的圖,需要耗費較大的人工,增加了紋理合并的難度,因而在實際生產中運用較少,下文的RTT方法與該方法類似。

3.3RTT(Render to Texture)

RTT,即渲染至紋理技術。與合并重復貼圖方法不同在于,前者是合并原始使用的紋理貼圖,而RTT是計算出模型的每個幾何面的紋理,然后通過排列算法,得到最終合并貼圖。利用RTT技術合并紋理[8]有兩個優(yōu)點,一是程序自動處理,二是可將光照信息也同時渲染到貼圖中去,整個模型只有一張紋理,此時模型紋理坐標范圍為[0,1]。

使用RTT技術,通常產生一張合并的貼圖。由于該圖尺寸固定,會存在模型紋理分辨率較低的問題,而為了不損失原紋理的分辨率,則需要渲染出更大尺度的貼圖,如4096?4096。當三維場景中出現大量大尺寸貼圖時,又會出現加載卡頓等問題。因此在模型制作階段,需要限制單個模型的表面積和,保證有限的出圖尺寸下,獲得一定的模型紋理分辨率。

4 實驗對比

對一個原始模型(如圖5所示,一棟20層建筑,重復貼圖20次),分別按剖分模型法和RTT方法進行比較(合并重復貼圖方法與RTT方法從一定程度上說是類似的,此處僅采用RTT方法)。合并前模型的紋理為0.05 m,剖分模型法與RTT方法的模型紋理分辨率為0.05 m和0.07 m,保證了模型外觀效果,圖5是不同方法對應的幾何模型與合并后紋理的效果。

進一步的,為模擬現實場景,便于比較不同方法的優(yōu)劣,需要一定的數據規(guī)模。通過重命名模型名以及紋理名,設定每個模型與紋理不相同,同時設定模型和紋理不被共享(若共享為一個實例,失去數據規(guī)模的意義,與本實驗目的不相符),通過平移,得到20?20格網下,共400棟建筑。

實驗平臺采用重慶市勘測院自主研發(fā)的集景三維數字城市平臺,使用計算機處理器為Intel(R) Core (TM)2 Duo CPU E8400.3.00GHZ,顯卡為NVIDIA Ge-Force GTX 285,內存2GB進行測試,采用動態(tài)加載方式,實驗場景如圖6所示。

圖5 不同方法對應的幾何模型與合并后紋理

圖6 實驗場景

在保證加載方式相同的情況下,得到實驗結果如表1所示。

實驗結果 表1

可得出以下結論:

(1)合并紋理后的數據總量變大,特別是RTT方法,是合并前的6倍,主要是存在重復紋理,每個模型都被20次重復貼圖,同時畫布的留白也導致數據量上升,具體如圖4所示。

(2)合并紋理后的場景幀率得到了提高。加載完場景模型后,兩種方法的幀率都提高到60幀,證明了減少紋理個數對提高場景渲染效率的有效性,特別是剖分模型法,在加載時間、加載過程中以及加載完成后的幀率都獲得了提升。

(3)RTT方法在模型加載過程的幀率降低,且加載時間長的原因是由于數據量增加導致了系統(tǒng)IO消耗,影響了場景加載效率。

5 三維大場景中使用RTT紋理合并實驗

與剖分模型法相比,RTT技術由計算機自動完成,極大減少人工作量,應在實際生產中優(yōu)先采用。在實際環(huán)境中,如上述實驗中所展現的高重復貼圖率較少,同時,由于數碼相機獲取的紋理清晰度很高,在應用中并不需要如此高的紋理分辨率,一般達到0.1 m以上即能滿足應用需求,從而使得在RTT過程中可減小合并后的紋理尺寸,達到減小總數據量的目的。因此,本文進一步開展了在實際三維大場景中,利用RTT技術合并重復貼圖實驗。

數據來源為重慶某場景的三維城市模型,范圍為2.2 km2。合并前每個模型平均使用約5張紋理,合并后為1張紋理。合并前后的模型紋理分辨率都不低于0.1 m。實驗的加載場景如圖7所示,結果如表2所示,經測試,發(fā)現合并前后的渲染狀態(tài)數從4 926降低到930個,加載當前場景的時間從38 s縮短到13 s,幀率從14幀提高到30幀。

實驗結果 表2

圖7 三維大場景中使用紋理合并方法

6 結 論

本文研究了重復紋理的合并原理,給出了三種重復紋理的合并方法,開展了紋理合并實驗,驗證了合并紋理對于提升場景幀率的有效性。此外,在紋理合并方法的選擇和應用上,還需進一步考慮:

對于城市級的三維模型,數據的集成量通常達到上百GB,紋理的數據量通常占到70%以上,因此在自動化的算法選擇上,需要考慮到算法的效率;

在紋理更新方面,由于紋理的合并,在需要更新未合并前的某個小紋理時,需要同步更新合并后的大紋理,更新復雜度增加。

最后,合并紋理的方式是提高三維場景加載和渲染效率的方法之一,還可以從模型的LOD建立、場景的調度組織等方面提高三維場景的加載效率。

參考文獻

[1] 馮琰,郭容寰,汪旻琦等.三維城市模型數據組織與管理方法研究[J].測繪科學,2011,36(1):215~217.

[2] 宋歌,楊紅雨.基于紋理集的大規(guī)模場景模型優(yōu)化算法[J].計算機工程與設計,2011,32(9):3120~3122.

[3] Carr N A,John H.Meshed atlases for real-time procedural solid texturing[J].ACM transactions on graphics,2002,21 (2):106~131.

[4] Buchholz H,Dollner J.View-dependent rendering of multiresolution texture-atlases[C].Minneapolis,MN,USA:IEEE COMPUTER SOC,2005.

[5] http:/ / www.nvidia.cn/ object/ nv _ texture _ tools.html.2015:2015.

[6] 戴雪峰,熊漢江,龔健雅.一種三維城市模型多紋理自動合并方法[J].武漢大學學報·信息科學版,2015,40 (3):347~353.

[7] 杜志強,羅盼,朱曉玲等.基于超面的建筑物紋理優(yōu)化處理方法[J].武漢大學學報·信息科學版,2014,39(12): 1401~1406.

[8] 李芳.3ds max6標準教材[M].北京:中國電力出版社, 2004.

Research on Method of Merging Texture for 3D City Models

Zhan Yong
(Chongqing Survey Institute,Chongqing 400020,China)

Abstract:When 3D engine process repeated texture,it repeats the whole one,not the parts of texture.so when textures merged,the original single one which used to repeat becomes part of the merged texture.In this situation,the correct repeat cannot be expressed.To solve the problem,this paper introduces three merging methods for 3D city models, such as splitting model,combining repeated textures and rendering to texture,and the differences of these three methods are compared.At last,experiments on texture merging are carried out in large 3D city scene,and results show that texture merging can effectively improves the efficiency of models loading and rending.

Key words:three-dimensional model;repeated texture;texture merging;frame rate

文章編號:1672-8262(2015)06-17-04中圖分類號:P208.1

文獻標識碼:A

收稿日期:?2015—07—22

作者簡介:詹勇(1987—),男,工程師,碩士,主要從事三維地理信息系統(tǒng)原理及應用研究工作。

基金項目:重慶市應用開發(fā)計劃項目(cstc2014yykfB40004)

猜你喜歡
三維模型
數字化人體圖像和三維模型在解剖教學中的應用
求知導刊(2016年36期)2017-03-03 01:51:13
礦山虛擬環(huán)境三維模型系統(tǒng)優(yōu)化方法研究
缸內直噴汽油機進氣道流動特性的數值模擬
汽車虛擬駕駛培訓系統(tǒng)的設計開發(fā)
虛擬仿真技術在家畜解剖教學中的應用
考試周刊(2016年49期)2016-07-05 09:14:41
基于現代信息技術的礦產資源監(jiān)管體系建設
科技視界(2016年13期)2016-06-13 08:13:41
基于WebGL的三維物理模型設計與開發(fā)
基于生態(tài)足跡的區(qū)域可持續(xù)發(fā)展研究
中國市場(2016年7期)2016-03-07 09:18:43
三維激光掃描在核電維修中的應用
科技視界(2016年4期)2016-02-22 12:45:32
基于SolidWorks的零件建模參數化設計應用簡析
科技資訊(2015年19期)2015-10-09 19:31:12
南澳县| 崇义县| 卢龙县| 池州市| 梨树县| 应城市| 北流市| 探索| 淮滨县| 兴国县| 玛纳斯县| 屏东市| 家居| 从化市| 江达县| 江源县| 醴陵市| 平顺县| 高淳县| 庆安县| 德州市| 安阳市| 上饶县| 辰溪县| 靖远县| 根河市| 鄂州市| 信阳市| 夏津县| 孝感市| 遂川县| 中牟县| 城市| 临沭县| 景德镇市| 府谷县| 安溪县| 赫章县| 马关县| 秀山| 微山县|