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

三維模型輕量化技術

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

陳龍, 郭軍, 張建中

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

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

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

作者簡介:陳龍(1987—),男,山西山陰人,工程師,碩士,主要從事三維地理信息系統(tǒng)研發(fā)工作,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技術的出現(xiàn),用戶無需安裝任何插件就可在瀏覽器端直接打開三維可視化系統(tǒng),提高了用戶體驗[1]。Cesium是一款基于WebGL技術實現(xiàn)的三維渲染引擎,在HTML5標準的瀏覽器和移動端運行[2],有詳細的API文檔和活躍的社區(qū)支持,可實現(xiàn)2D、2.5D、3D形式的地圖展示。通過Cesium將煤礦空間地理信息進行可視化表達,為煤礦“一張圖”、管控一體化、煤礦數(shù)字孿生等應用提供了保障[3]。

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

1 3DTiles格式

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

圖1 3DTiles結(jié)構(gòu)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的入口文件,用來描述整個三維瓦片文件集,記錄邏輯信息及其他元數(shù)據(jù)[6]。tileset.json文件中的屬性content記錄了瓦片文件集的相對路徑,通過該屬性可進行數(shù)據(jù)查找。

1.2 Tile

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

Tile文件結(jié)構(gòu)如圖2所示。

圖2 Tile文件結(jié)構(gòu)Fig.2 Tile file structure

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

表1 header格式Table 1 Format of header

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

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

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

2 輕量化關鍵技術

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

2.1 批渲染

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

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

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

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

2.2 帶寬節(jié)省

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

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

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

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

圖4 多級紋理圖片F(xiàn)ig.4 Multi-level texture image

2.3 數(shù)據(jù)量降低

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

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

(2) 三角面簡化。采取邊折疊算法生成連續(xù)的細節(jié)層次,該算法的優(yōu)勢在于移除不必要的硬邊及紋理銜接,避免邊界平滑和紋理分離[14]。通過對邊折疊算法進行改進,可設置三角面簡化的比例,在允許范圍內(nèi)盡量保持簡化模型一致。不同三角面簡化比例模型如圖5所示??煽闯鲈寄P捅砻婀饣?,具有很多細節(jié),三角面數(shù)量較多;三角面簡化50%后的模型細節(jié)有所簡化;三角面簡化80%后的模型三角面數(shù)量已大量減少。

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

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

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

3 應用效果

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

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

4 結(jié)語

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

猜你喜歡
信息模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
一個相似模型的應用
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 人妻无码中文字幕第一区| 亚洲欧美另类日本| 国产不卡网| 一级毛片在线免费视频| 天天干伊人| 亚洲精品在线影院| 欧美精品一区在线看| 国产精品成人久久| 欧美不卡二区| 国产玖玖玖精品视频| a毛片基地免费大全| 国产精品七七在线播放| 亚洲一欧洲中文字幕在线| 国产精品网址在线观看你懂的| 天天色天天综合网| 国产99精品视频| 亚洲第一区在线| 国产乱子伦无码精品小说| 亚洲人成色在线观看| 在线免费看黄的网站| 欧美日本在线观看| 91视频区| 人妻丰满熟妇av五码区| 色一情一乱一伦一区二区三区小说| 日本欧美在线观看| 免费看黄片一区二区三区| 97久久超碰极品视觉盛宴| 91丨九色丨首页在线播放| 孕妇高潮太爽了在线观看免费| 囯产av无码片毛片一级| 无码福利视频| 好久久免费视频高清| 亚洲一本大道在线| 国产又黄又硬又粗| 2021国产精品自产拍在线| 久久精品这里只有国产中文精品 | 97免费在线观看视频| 园内精品自拍视频在线播放| 中文字幕首页系列人妻| 丁香六月激情综合| A级毛片无码久久精品免费| 国产第一页亚洲| 国产 在线视频无码| 亚洲色图欧美| 亚洲无码熟妇人妻AV在线| 国产精品太粉嫩高中在线观看| 91精品国产91久无码网站| 国产成人高清精品免费5388| 亚洲国产av无码综合原创国产| 久久久久国产精品熟女影院| 免费一级无码在线网站 | 国产精品露脸视频| 亚洲欧美一区二区三区麻豆| 国产99精品视频| 国产原创演绎剧情有字幕的| 国产国拍精品视频免费看| 国产日本欧美亚洲精品视| 国产农村妇女精品一二区| a级毛片一区二区免费视频| 欧美国产成人在线| 日韩经典精品无码一区二区| 99热这里只有精品国产99| 国产女人18水真多毛片18精品| 日本在线欧美在线| 亚洲成人黄色在线观看| 亚洲天堂777| 激情无码视频在线看| 久久国产精品影院| 亚洲成aⅴ人在线观看| 国产精品污视频| 爱色欧美亚洲综合图区| 国产精品免费p区| 蜜桃视频一区| 天天干伊人| 制服丝袜亚洲| 国产精品一区二区在线播放| 亚洲日韩国产精品综合在线观看| 国产三级国产精品国产普男人| 国产制服丝袜91在线| 亚洲国产天堂久久九九九| 午夜精品福利影院| 国产麻豆91网在线看|