Cesium 3DTiles轉(zhuǎn)換工具
開源地址:https://github.com/scially/Cesium3DTilesConverter , 提供Windows下的編譯exe下載捏悬。
整體參考https://github.com/fanvanzh/3dtiles, 向作者致敬,市面上唯一的開源好用的3DTILES轉(zhuǎn)換工具艾少,在學(xué)習(xí)過程中传于,從中收獲很多寸莫,對3DTiles尝胆、OSGB、GLTF等數(shù)據(jù)格式有了進(jìn)一步了解讼撒。
-
原工程基于C++燎窘、C和Rust摹闽,本人本身對Rust不了解,但是學(xué)習(xí)過程中難免涉及到調(diào)試褐健,也看了整個代碼付鹿,個人理解作者采用Rust和C++混編應(yīng)該是兩個問題:
- OpenSceneGraph沒有除了C++之外其他版本,而且我們在用這個工具時,最主要的就是OSGB轉(zhuǎn)3DTILES
- 本身C++可以跨平臺倘屹,但是C++對字符串银亲、文件系統(tǒng)支持不夠好,Rust可以很好滿足這一點(diǎn)纽匙,并且Rust也便于和C++交互
- 綜合下來务蝠,原作者使用了Rust和C++來編寫,一是保證跨平臺烛缔,二是保證了性能馏段。
-
本人本身是對Qt比較熟悉的,就萌生了這個想法践瓷,用C++和Qt院喜,從新梳理整個框架,剛好今年春節(jié)一個人晕翠,秉著學(xué)習(xí)想法喷舀,使用純C++(加了Qt)重寫了該工程,新的工程基于C++ 17標(biāo)準(zhǔn)重寫淋肾,使用了Qt5.15硫麻,主要作者本身寫C++大部分時候都是基于Qt,對Qt也稍微了解樊卓,同時也借助Qt很好的跨平臺特性拿愧,性能沒有變化,并且也便于調(diào)試學(xué)習(xí)碌尔。
- 整個工程開源浇辜,但是鑒于Qt一些限制,該程序采用LGPL協(xié)議唾戚。
- 后續(xù)會與作者同步保持更新柳洋,后期希望可以加入自己一些特色功能。
簡介
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é)點(diǎn)坠敷;
正確的目錄結(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)
- vcpkg install "osg" "osg[plugins]"
- 如果沒有Qt5.15膝迎,可以通過以下兩種方式安裝:
- 通過Qt官網(wǎng)安裝
- vcpkg install "qt5[all]"
- VS2019選擇CMakeLists.txt粥帚,導(dǎo)入工程,編譯
- 把OSGPlugins文件夾復(fù)制到編譯目錄下