亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        三維模型glTF 格式到SLPK 格式的轉(zhuǎn)換方法探索及其應(yīng)用

        2023-10-21 01:17:22張偉ZHANGWei
        價(jià)值工程 2023年28期
        關(guān)鍵詞:鐵路信息模型

        張偉ZHANG Wei

        (中鐵第四勘察設(shè)計(jì)院集團(tuán)有限公司,武漢 430063)

        0 引言

        隨著“鐵路數(shù)字化”概念的提出和發(fā)展,三維BIM 模型在鐵路工程中也得到了廣泛的應(yīng)用。其不僅可以向用戶進(jìn)行直觀的模型展示還可以協(xié)助完成鐵路線路的規(guī)劃和設(shè)計(jì),極大地推動(dòng)了鐵路行業(yè)的數(shù)字化進(jìn)程。為了更好將三維BIM 模型融合到GIS 行業(yè)中,ESRI 公司提出了I3S規(guī)范,并基于該規(guī)范定義了新的三維數(shù)據(jù)格式SLPK(scene layer package)。SLPK 格式優(yōu)化了BIM 模型的數(shù)據(jù)存儲(chǔ)和樹(shù)形結(jié)構(gòu),相較于其它三維數(shù)據(jù)格式,其在Arcgis客戶端進(jìn)行加載時(shí)更加高效。目前鐵路行業(yè)應(yīng)用較廣的Blender、3DMax、Revit 等三維設(shè)計(jì)軟件無(wú)法直接導(dǎo)出SLPK格式的模型供Arcgis 使用,但可以支持glTF 格式的導(dǎo)出[1]。本文通過(guò)研究glTF 格式數(shù)據(jù)組織結(jié)構(gòu),并基于SharpGLTF和i3s 等開(kāi)源庫(kù)進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)了三維模型從glTF 格式到SLPK 格式的轉(zhuǎn)換。同時(shí)為了更方便地在Arcgis 中使用三維模型,在轉(zhuǎn)換過(guò)程中可以支持將模型導(dǎo)出為Web 墨卡托坐標(biāo)或經(jīng)緯度坐標(biāo)。其轉(zhuǎn)換流程如圖1 所示。

        圖1 模型轉(zhuǎn)換流程

        1 glTF 格式數(shù)據(jù)組織結(jié)構(gòu)分析

        glTF(GL Transmission Format)是一種基于JSON 的三維模型文件格式,具有通用性強(qiáng)和數(shù)據(jù)解析簡(jiǎn)單的特點(diǎn),目前絕大多數(shù)主流三維設(shè)計(jì)軟件都支持對(duì)該格式的加載和導(dǎo)出。glTF 文件有兩種后綴格式可以選擇,.gltf 和.glb,其中.glb 是glTF 格式的二進(jìn)制表示形式。

        glTF 的數(shù)據(jù)組織結(jié)構(gòu)主要包括JSON 文件和關(guān)聯(lián)外部數(shù)據(jù)文件,具體來(lái)說(shuō)外部數(shù)據(jù)文件包括圖像文件、GLSL文件和bin 文件[2]。如圖2 所示。

        圖2 glTF 數(shù)據(jù)組織結(jié)構(gòu)

        JSON 文件是glTF 數(shù)據(jù)的核心部分,文件中記述了模型相關(guān)的場(chǎng)景信息及數(shù)據(jù)的索引信息。JSON 文件由一系列的元素節(jié)點(diǎn)構(gòu)成,其中scenes 和nodes 元素描述了模型場(chǎng)景的基本結(jié)構(gòu)和層次信息,meshes、textures、materials 和images 等元素描述了場(chǎng)景中三維模型的幾何和材質(zhì)紋理信息,buffers、bufferviews 和accessors 等元素描述了模型的數(shù)據(jù)類(lèi)信息。各元素之間的引用關(guān)系如圖3 所示[3]。

        圖3 元素引用關(guān)系

        2 glTF 模型屬性提取

        要實(shí)現(xiàn)三維模型從glTF 格式到SLPK 格式的轉(zhuǎn)換,首先需要將三維模型的相關(guān)屬性信息從glTF 模型中提取出來(lái)[4]。這些屬性包括三角面片信息、頂點(diǎn)位置信息、頂點(diǎn)紋理坐標(biāo)、紋理貼圖信息、模型材質(zhì)信息、法向量信息等。為了方便存儲(chǔ)以上屬性信息,在程序中定義了一個(gè)數(shù)據(jù)存儲(chǔ)類(lèi)ModelData,其中MeshData 類(lèi)用來(lái)存儲(chǔ)模型的三角面片信息,VertexData 類(lèi)用來(lái)存儲(chǔ)模型的頂點(diǎn)信息,Point3D 和Point2D 類(lèi)分別用來(lái)存儲(chǔ)三維點(diǎn)和二維點(diǎn)信息,其類(lèi)圖如圖4 所示。

        圖4 ModelData 類(lèi)圖

        程序中對(duì)glTF 文件的加載和屬性提取可以借助于現(xiàn)有的一些比較成熟的開(kāi)源庫(kù)進(jìn)行。SharpGLTF 是一款輕量級(jí)的glTF 模型處理開(kāi)源庫(kù),支持對(duì)glTF 模型的讀寫(xiě),可以滿足提取模型屬性的需求。在使用SharpGLTF 對(duì)glTF 模型進(jìn)行屬性提取時(shí)需要注意以下幾點(diǎn):①在加載glTF 模型后應(yīng)調(diào)用SharpGLTF 部分原生接口直接獲取模型的三角網(wǎng)列表信息,這樣可以方便模型屬性的提?。虎趶膅lTF模型中獲取的顏色值需要乘255 以獲取其真實(shí)的RGBA信息;③獲取到模型的頂點(diǎn)Position 信息后,可以根據(jù)需要將其處理為Web 墨卡托坐標(biāo)或經(jīng)緯度坐標(biāo),這樣在導(dǎo)出為SLPK 模型后,模型就可以適配相應(yīng)坐標(biāo)系。

        3 輸出SLPK 模型

        SLPK 模型文件屬于一種數(shù)據(jù)壓縮包文件,解壓后可以看到其有一系列的JSON 文件和二進(jìn)制文件組成,JSON文件和二進(jìn)制文件均使用gzip 壓縮。其中3DSceneLayer.json 描述的是整個(gè)模型場(chǎng)景的信息,如模型的圖層類(lèi)型、參考坐標(biāo)系和材質(zhì)及紋理定義信息等。nodes 目錄存放“節(jié)點(diǎn)”信息,每個(gè)文件夾代表一個(gè)模型節(jié)點(diǎn)。nodePages 目錄存放“節(jié)點(diǎn)頁(yè)”信息[5]。

        完成glTF 模型屬性提取,基于獲取的ModelData 對(duì)象和i3s 開(kāi)源庫(kù)就可以導(dǎo)出生成SLPK 三維模型了。

        3.1 創(chuàng)建Layer_write 并寫(xiě)入Layer_meta 信息

        創(chuàng)建Layer_write 部分代碼如下所示:

        上述代碼中配置的Layer_meta 信息最終會(huì)寫(xiě)入的SLPK 數(shù)據(jù)文件中的3DSceneLayer.json 文件中。代碼中wkid 表示要生成的模型的坐標(biāo)系類(lèi)型,我們可以通過(guò)配置wkid 的值來(lái)使模型使用不同的坐標(biāo)系。其中wkid=3857 表示當(dāng)前模型使用的坐標(biāo)是Web 墨卡托坐標(biāo),wkid=4326 表示當(dāng)前模型使用的坐標(biāo)是經(jīng)緯度坐標(biāo)。

        3.2 創(chuàng)建模型mesh 節(jié)點(diǎn)

        遍歷ModelData 中的MeshList,實(shí)例化i3slib::i3s::Simple_raw_mesh raw_mesh 對(duì)象,并將前面獲取的MeshData 中的頂點(diǎn)坐標(biāo)、法向量、紋理坐標(biāo),紋理貼圖和顏色依次賦值給raw_mesh.abs_xyz、raw_mesh.normals、raw_mesh.uv、raw_mesh.img 和raw_mesh.colors。之后再依次調(diào)用i3sLayerWriter 對(duì)象的create_mesh_from_raw ()和create_node()函數(shù)創(chuàng)建mesh 節(jié)點(diǎn)。對(duì)于SLPK 格式,每個(gè)模型節(jié)點(diǎn)下都有一個(gè)node_depth 屬性,其值表示節(jié)點(diǎn)的層級(jí)。mesh 節(jié)點(diǎn)的node_depth 設(shè)置為1。

        3.3 創(chuàng)建模型root 節(jié)點(diǎn)

        調(diào)用i3sLayerWriter 對(duì)象的create_node () 函數(shù)創(chuàng)建root 節(jié)點(diǎn)。root 節(jié)點(diǎn)的node_depth 設(shè)置為0,并將上一步創(chuàng)建的mesh 節(jié)點(diǎn)掛載在root 節(jié)點(diǎn)下。

        3.4 輸出SLPK 模型文件

        調(diào)用i3sLayerWriter 對(duì)象的save()函數(shù)輸出SLPK 文件。由于SLPK 是一種數(shù)據(jù)壓縮包文件,一般情況下同一個(gè)三維模型,其SLPK 文件的存儲(chǔ)大小要小于其glTF 文件,這從而也提高了SLPK 模型在程序中的加載效率。如圖5 所示。圖6、圖7 分別是轉(zhuǎn)換前glTF 格式的三維模型和轉(zhuǎn)換后SLPK 格式的三維模型。

        圖5 glTF 文件與SLPK 文件對(duì)比

        圖6 原始glTF 格式三維模型

        圖7 轉(zhuǎn)換后SLPK 格式三維模型

        4 鐵路選線軟件中的應(yīng)用

        在基于Arcgis 平臺(tái)三維可視化選線系統(tǒng)中,為了更直觀的顯示線路設(shè)計(jì)效果,需要沿鐵路線加載路基、隧道、站場(chǎng)和橋梁等三維BIM 模型。但目前已有BIM 模型都為glTF 格式,當(dāng)加載模型過(guò)多時(shí)會(huì)出現(xiàn)場(chǎng)景卡頓等現(xiàn)象,而Argis 對(duì)SLPK 模型的的加載調(diào)動(dòng)機(jī)制較好,故可以將glTF 模型統(tǒng)一轉(zhuǎn)換為SLPK 格式進(jìn)行加載以解決大場(chǎng)景加載問(wèn)題。同時(shí)由于在glTF 格式向SLPK 格式轉(zhuǎn)換過(guò)程中,我們已經(jīng)將模型的相對(duì)坐標(biāo)轉(zhuǎn)換為了Web 墨卡托坐標(biāo)或經(jīng)緯度坐標(biāo),在加載模型時(shí)不需要再對(duì)模型進(jìn)行定位擺放,可以進(jìn)一步可以?xún)?yōu)化模型加載效率,并且加載后的模型位置定位準(zhǔn)確且與地形的貼合度也較好。圖8 為轉(zhuǎn)換后的SLPK 模型在基于Arcgis 的鐵路選線系統(tǒng)中的展示效果。

        圖8 站場(chǎng)模型展示效果

        5 結(jié)語(yǔ)

        通過(guò)探索和研究,本文創(chuàng)新性通過(guò)對(duì)SharpGLTF 和i3s 等開(kāi)源庫(kù)進(jìn)行二次開(kāi)發(fā),解決了三維BIM 模型由glTF格式到SLPK 格式的轉(zhuǎn)換問(wèn)題。在鐵路行業(yè)廣泛的存在著大量輔助設(shè)計(jì)的glTF 格式的三維模型,利用本文方法既可以單獨(dú)提取模型信息進(jìn)行輔助設(shè)計(jì),也可以進(jìn)行模型格式的轉(zhuǎn)換,拓展模型的應(yīng)用范圍,提升大場(chǎng)景模型加載效率。故該項(xiàng)技術(shù)在鐵路行業(yè)也有著廣泛的應(yīng)用前景[6]。

        猜你喜歡
        鐵路信息模型
        一半模型
        沿著中老鐵路一路向南
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        鐵路通信線路維護(hù)體制改革探索與實(shí)踐
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        3D打印中的模型分割與打包
        無(wú)人機(jī)在鐵路工程建設(shè)中的應(yīng)用與思考
        GSM-R在鐵路通信中的應(yīng)用
        展會(huì)信息
        和黑人邻居中文字幕在线| 亚洲成人免费久久av| 久久久熟女一区二区三区| 欧美熟妇另类久久久久久不卡 | 未满十八勿入av网免费| 女同久久精品国产99国产精| 媚药丝袜美女高清一二区| 国产白袜脚足j棉袜在线观看| 日韩中文字幕欧美亚洲第一区| 婷婷精品国产亚洲av| 成人大片免费视频播放一级| 男女高潮免费观看无遮挡| 国产成人午夜福利在线观看者| 一区二区三区四区四色av| 日韩精品免费一区二区三区观看 | 久久欧美与黑人双交男男| 亚洲精品国产综合久久一线| 人妻中文久久人妻蜜桃| 国产又爽又大又黄a片| 日本高清www午色夜高清视频 | 国产白丝网站精品污在线入口| 99久久精品国产一区色| 国精产品一区一区三区有限在线| 国产精品无码a∨精品影院| 岛国熟女一区二区三区| 一区二区三区中文字幕在线观看| 国产精品人人做人人爽| 在线播放国产一区二区三区| 国产美女三级视频网站| 中文字日产幕码三区的做法步| 伊人久久大香线蕉av网禁呦| 国产精品亚洲A∨天堂| 日韩产的人妻av在线网| 男人扒开女人双腿猛进视频| 亚洲av有码在线天堂| 亚洲精品高清av在线播放| 亚洲高清在线免费视频| 少妇高潮惨叫正在播放对白| 国产高清在线91福利| 中文字幕人妻日韩精品 | 天天干成人网|