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

三維模型輕量化技術

2021-06-02 09:55:42陳龍郭軍張建中
工礦自動化 2021年5期
關鍵詞:信息模型

陳龍, 郭軍, 張建中

(煤炭科學研究總院 礦山大數據研究院, 北京 100013)

收稿日期:2021-02-24;修回日期:2021-04-26;責任編輯:盛男,鄭海霞。

基金項目:北京市科技計劃應用技術協同創新資助項目(Z201100004520015);中國煤炭科工集團有限公司科技創新創業資金專項資助項目(2019-2-ZD002)。

作者簡介:陳龍(1987—),男,山西山陰人,工程師,碩士,主要從事三維地理信息系統研發工作,E-mail:chenlong@ccteg-bigdata.com。

引用格式:陳龍,郭軍,張建中.三維模型輕量化技術[J].工礦自動化,2021,47(5):116-120.

CHEN Long,GUO Jun,ZHANG Jianzhong.3D model lightweight technology[J].Industry and Mine Automation,2021,47(5):116-120.

0 引言

隨著WebGL技術的出現,用戶無需安裝任何插件就可在瀏覽器端直接打開三維可視化系統,提高了用戶體驗[1]。Cesium是一款基于WebGL技術實現的三維渲染引擎,在HTML5標準的瀏覽器和移動端運行[2],有詳細的API文檔和活躍的社區支持,可實現2D、2.5D、3D形式的地圖展示。通過Cesium將煤礦空間地理信息進行可視化表達,為煤礦“一張圖”、管控一體化、煤礦數字孿生等應用提供了保障[3]。

隨著三維模型數據量的增大,模型加載速度降低且瀏覽不流暢,因此需要對三維模型進行輕量化處理,但是Cesium并沒有提供三維模型輕量化工具[4]。本文在分析Cesium的模型格式3DTiles的基礎上,從批渲染、帶寬節省和數據量降低3個方面提出了一種三維模型輕量化技術,可達到三維模型高效加載且瀏覽流暢的目的。

1 3DTiles格式

3DTiles是散列文件的合集,記錄了模型屬性數據、邏輯關系等,是一種對數據的組織方式[5]。3DTiles在glTF基礎上加入了 多細節層次(Level of Detail,LOD)結構,如圖1所示。

圖1 3DTiles結構Fig.1 3DTile structure

3DTiles包括tileset.json文件和Data文件。Data文件里面包括多個三維瓦片文件集Tile_0_0,Tile_0_1,…,每個瓦片文件集包括1個json文件和Tiles,Tiles里面包含多個Tile文件。

1.1 tileset.json

tileset.json文件是3DTiles的入口文件,用來描述整個三維瓦片文件集,記錄邏輯信息及其他元數據[6]。tileset.json文件中的屬性content記錄了瓦片文件集的相對路徑,通過該屬性可進行數據查找。

1.2 Tile

Tile是一個二進制的瓦片數據,包括Batched 3D Model (b3dm)、Instanced 3D Model (i3dm)、Point Cloud(pnts)、Composite(cmpt) 4種格式,可用于不同場景。

Tile文件結構如圖2所示。

圖2 Tile文件結構Fig.2 Tile file structure

(1) header。header格式見表1。header占28 byte,包括7個屬性數據。header主要對Tile文件進行了描述,且記錄了Tile的類型、版本號、文件大小、FeatureTable的json長度、FeatureTable二進制數據長度、BatchTable的json長度、BatchTable二進制數據長度。

表1 header格式Table 1 Format of header

(2) FeatureTable。FeatureTable記錄整個瓦片渲染的相關數據,由FeatureTableJson和FeatureTableBinary組成。FeatureTableJson是元數據的角色,以json方式記錄模型的個數、坐標中心等。FeatureTableBinary記錄二進制本體數據。

(3) BatchTable。BatchTable記錄每個模型的屬性數據及擴展數據,由BatchTableJson和BatchTableBinary組成。BatchTableJson記錄屬性的描述信息、字節偏移長度、數據類型等。BatchTableBinary記錄二進制本體數據,根據BatchTableJson記錄的信息可在二進制本體數據中進行定位。

(4) glb。內嵌的glb符合glTF數據格式規范,所有的幾何信息、紋理信息、可編程管線等均存儲在glb中。

2 輕量化關鍵技術

影響三維場景渲染性能的因素有CPU、GPU和帶寬。CPU性能降低的原因包括使用過多的DrawCall、復雜的腳本或物理模擬。如果GPU中使用了過多的頂點及逐頂點計算,會造成GPU資源浪費。三維模型是由幾何信息、材質、貼圖組成,為了減小模型文件大小,要求模型中使用的貼圖尺寸不能過大,將紋理圖片和幾何信息進行壓縮,從而可降低三維模型的文件大小,利于網絡傳輸。

2.1 批渲染

圖形渲染的原理是CPU向GPU發送渲染命令,GPU接收并執行相應的渲染命令。DrawCall是CPU通過調用DirectX或OpenGL的圖形編程接口來命令GPU進行渲染操作,CPU每一次提交命令給GPU,都需要做大量工作[7]。在渲染每個不同材質的物體時,均需要調用相應的API。當DrawCall過多,CPU就會產生很多額外開銷用于準備工作,花費大量時間將命令提交給GPU,造成CPU負載增加,GPU資源浪費。采用批渲染將渲染狀態(如材質、貼圖、可編程管線、幾何信息等)一致的物體合成1個大物體,放在1個DrawCall中,在1次渲染任務中進行繪制,GPU不用多次切換渲染狀態[7],提高了渲染效率。

(1) 材質共享。將模型中使用的紋理圖片通過算法進行合并,重新計算并記錄紋理坐標,將多張小紋理圖片合并成1張大紋理圖片。使用了同一張紋理圖片,就可以使用同一種材質,然后使用不同的采樣坐標對紋理圖片采樣[8],就能實現正確的紋理貼圖。CPU無需多次調用圖形API,在1個DrawCall中就可以加載合并后的大紋理圖片。多張小紋理圖片合并成1張大紋理圖片的效果如圖3所示。

圖3 紋理圖片合并Fig.3 Texture image merge

(2) 模型網格合并。對于使用了同一種材質的紋理,它們之間僅模型的幾何信息不同,如頂點、索引、法線、紋理坐標等。如果將這些數據在允許的數量范圍內進行合并,將合并后的頂點緩存對象提交給GPU,就可以在1個渲染批次完成三維模型渲染。

2.2 帶寬節省

影響瀏覽器加載三維模型速度的重要因素是帶寬。對網絡傳輸數據進行壓縮,最大限度地節省帶寬,提高三維視覺體驗。

(1) 紋理壓縮。Crunch是一個開源的壓縮算法,其解壓速度很快。該算法可大幅降低紋理的存儲大小,降低顯存及數據請求時間,壓縮經過合并的紋理,將壓縮后的紋理通過二進制方式寫入Tile的glb中,在使用的時候進行解壓,提升數據解析及加載渲染的效率。

(2) 頂點壓縮。使用Draco對模型幾何網格的連接信息和幾何信息分別進行編碼,之后進行壓縮,將壓縮后的信息通過二進制方式寫入Tile的glb中,加載模型時,通過解析壓縮信息,得到正確的模型幾何信息。使用Draco壓縮算法可節省約80%的存儲空間[9]。

(3) 多級漸遠紋理(Mipmap)。因為模型數據要生成多級LOD模型,如果每一級都使用同一高精度紋理,會產生紋理浪費。對合并后的大紋理圖片進行重采樣,逐級生成低精度的Mipmap層級,保證在每一級使用不同精度的紋理圖片,最大限度降低顯卡顯存占用率[10-11]。利用Mipmap將合并的紋理圖片轉換成不同分辨率的紋理圖片,如圖4所示。

圖4 多級紋理圖片Fig.4 Multi-level texture image

2.3 數據量降低

GPU的渲染能力與模型的頂點數量有關,頂點數量龐大,GPU負載增加。在不影響視覺體驗的情況下,減少模型的頂點數量,可減輕GPU負載壓力。

(1) LOD。在三維場景中,如果相機位置較遠,肉眼難以區分模型的細節部分,采用LOD技術逐級減少模型的頂點數量,從而減少GPU的渲染數據量,提高三維場景流暢性[12]。為同一個對象準備多個包含不同細節程度的模型,并將模型賦值給LOD的不同等級,將不同細節程度的模型組織好父子關系,并設置相機參考值,Cesium在加載模型時,會自動根據相機位置來判斷加載哪個等級的模型[13]。

(2) 三角面簡化。采取邊折疊算法生成連續的細節層次,該算法的優勢在于移除不必要的硬邊及紋理銜接,避免邊界平滑和紋理分離[14]。通過對邊折疊算法進行改進,可設置三角面簡化的比例,在允許范圍內盡量保持簡化模型一致。不同三角面簡化比例模型如圖5所示。可看出原始模型表面光滑,具有很多細節,三角面數量較多;三角面簡化50%后的模型細節有所簡化;三角面簡化80%后的模型三角面數量已大量減少。

圖5 不同三角面簡化比例模型Fig.5 Simplified scale model of different triangles

在最大程度保持模型外觀的基礎上,通過逐級簡化來減少頂點數量。如果模型在距離相機較遠的位置,使用三角面簡化80%的模型;若模型在距離相機較近的位置,使用三角面簡化50%的模型;若模型在距離相機很近的位置,使用原始模型,這樣可以緩解GPU壓力。

(3) 數據空間結構組織。3DTiles在三維模型中支持自適應空間細分,包括kd樹、四叉樹、八叉樹等空間數據結構。每種空間數據結構具有不同的使用場景,本文采用八叉樹算法[15-16]對模型數據進行分塊。根據模型復雜程度,自適應設置八叉樹深度。按需加載模型的某一部分并進行渲染,從而提高場景流暢度。

3 應用效果

使用CPU I7-8750、內存為16 GB、顯卡 NVIDIA GTX1060、顯示器刷新率為60 Hz的電腦,基于Cesium平臺對三維模型輕量化處理前后的幀速率進行測試,結果見表2。可看出三維模型輕量化后的幀速率有所提高,達到了提高加載速度、使瀏覽更加流暢的目的。

表2 三維模型輕量化前后幀速率對比Table 2 Frame rate comparison before and after 3D model lightweight

4 結語

在分析Cesium的模型格式3DTiles的基礎上,提出了三維模型輕量化技術。將模型中的紋理圖片依據材質和模型網格進行合并,實現正確紋理貼圖,降低了DrawCall調用次數;將紋理和頂點進行壓縮,降低了紋理圖片文件大小;采用Mipmap生成不同分辨率的紋理圖片,有利于網絡傳輸;使用LOD和三角面簡化技術,逐級降低模型的頂點和三角面數量;根據模型復雜程度,自適應選擇八叉樹深度,按需加載模型的某一部分,從而降低GPU的渲染數據量,提高三維場景流暢性。基于Cesium平臺對三維模型輕量化處理前后的幀速率進行測試,結果表明,三維模型經輕量化處理后幀速率有所提高。

猜你喜歡
信息模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
一個相似模型的應用
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲天堂.com| 欧美亚洲欧美| 亚洲成人精品在线| 久久a级片| 国产精品视频猛进猛出| 亚洲午夜福利在线| 人妻熟妇日韩AV在线播放| 国产色图在线观看| 久久精品人妻中文视频| 午夜欧美在线| 亚洲一区网站| 最新痴汉在线无码AV| 国产一区免费在线观看| 色婷婷在线影院| 国内精品小视频福利网址| 国产精品极品美女自在线看免费一区二区| 国产v精品成人免费视频71pao| 99er精品视频| 67194在线午夜亚洲 | 国产成人精品18| 99久久人妻精品免费二区| 麻豆国产精品| 久操线在视频在线观看| 四虎影视库国产精品一区| 国产农村妇女精品一二区| 色婷婷电影网| 成人毛片免费在线观看| 欧美日韩一区二区三| 9966国产精品视频| 国产爽爽视频| 在线播放91| 国产久草视频| 国产18在线播放| 欧美第二区| 爱色欧美亚洲综合图区| 免费高清自慰一区二区三区| 热这里只有精品国产热门精品| 国产福利小视频高清在线观看| 色哟哟国产成人精品| a在线亚洲男人的天堂试看| 亚洲欧洲日韩久久狠狠爱 | 午夜视频在线观看免费网站| 97精品国产高清久久久久蜜芽| 亚洲午夜国产片在线观看| 欧美亚洲香蕉| 亚洲第一香蕉视频| 在线五月婷婷| 中文无码日韩精品| 91麻豆国产精品91久久久| 伊人欧美在线| 国产精品极品美女自在线网站| 22sihu国产精品视频影视资讯| 五月六月伊人狠狠丁香网| 中文字幕一区二区人妻电影| 一区二区三区成人| 亚洲国产亚综合在线区| 欧美在线精品一区二区三区| 国产99视频在线| 无码福利视频| 成年人国产视频| 国产精品私拍在线爆乳| 国产91久久久久久| 亚州AV秘 一区二区三区| 999国产精品| h视频在线播放| 国产一级片网址| 亚洲综合狠狠| 久久久久青草大香线综合精品| 亚洲最猛黑人xxxx黑人猛交| 欧美午夜视频| AV老司机AV天堂| 国产欧美日韩91| 91成人在线免费观看| 波多野结衣中文字幕一区| 亚洲国产精品不卡在线| 五月婷婷中文字幕| 亚洲国产欧美国产综合久久| 3p叠罗汉国产精品久久| 亚洲精品无码成人片在线观看| 嫩草国产在线| 91视频国产高清| 精品第一国产综合精品Aⅴ|