Cesium 3DTiles轉(zhuǎn)換工具

Cesium 3DTiles轉(zhuǎn)換工具

  1. 開源地址:https://github.com/scially/Cesium3DTilesConverter , 提供Windows下的編譯exe下載。

  2. 整體參考https://github.com/fanvanzh/3dtiles, 向作者致敬,市面上唯一的開源好用的3DTILES轉(zhuǎn)換工具,在學(xué)習(xí)過程中,從中收獲很多,對3DTiles、OSGB、GLTF等數(shù)據(jù)格式有了進一步了解。

  3. 原工程基于C++、C和Rust,本人本身對Rust不了解,但是學(xué)習(xí)過程中難免涉及到調(diào)試,也看了整個代碼,個人理解作者采用Rust和C++混編應(yīng)該是兩個問題:

    1. OpenSceneGraph沒有除了C++之外其他版本,而且我們在用這個工具時,最主要的就是OSGB轉(zhuǎn)3DTILES
    2. 本身C++可以跨平臺,但是C++對字符串、文件系統(tǒng)支持不夠好,Rust可以很好滿足這一點,并且Rust也便于和C++交互
    3. 綜合下來,原作者使用了Rust和C++來編寫,一是保證跨平臺,二是保證了性能。
  4. 本人本身是對Qt比較熟悉的,就萌生了這個想法,用C++和Qt,從新梳理整個框架,剛好今年春節(jié)一個人,秉著學(xué)習(xí)想法,使用純C++(加了Qt)重寫了該工程,新的工程基于C++ 17標(biāo)準(zhǔn)重寫,使用了Qt5.15,主要作者本身寫C++大部分時候都是基于Qt,對Qt也稍微了解,同時也借助Qt很好的跨平臺特性,性能沒有變化,并且也便于調(diào)試學(xué)習(xí)。

    1. 整個工程開源,但是鑒于Qt一些限制,該程序采用LGPL協(xié)議。
    2. 后續(xù)會與作者同步保持更新,后期希望可以加入自己一些特色功能。

Download Windows Pre-build

簡介

3DTiles 轉(zhuǎn)換工具集, 快速將OSGB、Shp、GDB等格式轉(zhuǎn)為Cesium 3DTiles, 方便搭建三維平臺。

這是一個基于c++ 17 和 Qt5.15 項目。

提供了如下的子工具:

  • OSGB(OpenSceneGraph Binary) 轉(zhuǎn) 3DTiles
  • Esri Shapefile 轉(zhuǎn) 3DTiles

用法說明

命令行格式

Converter.exe --format <FORMAT> --input <INPUT> --output <OUTPUT> [OPTIONS] 

示例命令

# from osgb dataset
Converter.exe --format osgb -input E:\osgb_path -o E:\out_path

# from single shp file
Converter.exe --format gdal --input <Shapefile Path> --output <DIR>  --field height --layer <Shapefile Name>

# from gdb file
Converter.exe --format gdal --input <GDB Path> --output <DIR>  --field height --layer <Layer Name>

參數(shù)說明

  • -f, --format <FORMAT> 輸入數(shù)據(jù)格式。

    FORMAT 可選:OSGB, GDAL

    可選:OSGB 為傾斜攝影格式數(shù)據(jù), GDAL 為GDAL支持的面(Polygon)數(shù)據(jù)

  • --input <PATH> 輸入數(shù)據(jù)的目錄,osgb數(shù)據(jù)截止到 <DIR>/Data 目錄的上一級,GDAL參考GDAL數(shù)據(jù)格式。

  • --output <DIR> 輸出目錄。OSGB轉(zhuǎn)換的3DTiles輸出的數(shù)據(jù)文件位于 <DIR>/Data 目錄, GDAL轉(zhuǎn)換的3DTiles輸出的數(shù)據(jù)文件位于<DIR>/Tile目錄,tileset.json位于<DIR>根目錄。

  • --field 高度字段。指定GDAL數(shù)據(jù)集中的高度屬性字段,此項為轉(zhuǎn)換 GDAL 時的必須參數(shù)。

  • --offset OSGB高度偏移字段。

數(shù)據(jù)要求及說明

傾斜攝影數(shù)據(jù)

傾斜攝影數(shù)據(jù)僅支持 smart3d 格式的 osgb 組織方式:

  • 數(shù)據(jù)目錄必須有一個 Data 目錄的總?cè)肟冢?/li>
  • Data 目錄同級放置一個 metadata.xml 文件用來記錄模型的位置信息;
  • 每個瓦片目錄下,必須有個和目錄名同名的 osgb 文件,否則無法識別根節(jié)點;

正確的目錄結(jié)構(gòu)示意:

- Your-data-folder
  ├ metadata.xml
  └ Data/Tile_000_000/Tile_000_000.osgb

GDAL

目前僅支持GDAL格式的面數(shù)據(jù),可用于建筑物輪廓批量生成3DTiles.

圖層中需要有字段來表示高度信息。

How To Build (Windows)

  1. vcpkg install "osg" "osg[plugins]"
  2. 如果沒有Qt5.15,可以通過以下兩種方式安裝:
    1. 通過Qt官網(wǎng)安裝
    2. vcpkg install "qt5[all]"
  3. VS2019選擇CMakeLists.txt,導(dǎo)入工程,編譯
  4. 把OSGPlugins文件夾復(fù)制到編譯目錄下

About Author

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容