2020年3月29號更新。添加c++版本鏈接
c++版本:https://blog.csdn.net/u014572215/article/details/105105063
c++版本支持模型壓縮。
使用JobjTob3dm轉換工具可以將obj文件轉成glit和b3dm。
下載地址:https://download.csdn.net/download/u014572215/11078795
百度雲:https://pan.baidu.com/s/1OCraZO7-KpDBNrO-wNS25w
提取碼:34j0
c++版本支持模型壓縮
https://blog.csdn.net/u014572215/article/details/105105063
C++版本下載地址
鏈接:https://pan.baidu.com/s/1ULl35149H8MNNKojLqeK3g
提取碼:zg06
使用說明和要求
一、軟件實現obj模型文件轉換成cesium使用的gltf或3D Tiles文件。
軟件界面如下
主界面
控制檯
主界面是obj轉換成gltf和b3dm的操作界面,控制檯是消息顯示和錯誤信息顯示的地方,請不要關閉控制檯。
二、Obj文件要求
1、obj文件中不得出現中文
三、mtl文件要求
1、mtl中引用的圖片不到出現路徑,只保留圖片文件名和後綴。如
1是正確的,2和3是錯誤的,
2應改爲timg.jpg,把 G:\picture\ 刪除
3應改爲timg.jpg,把picture\ 刪除
2、不得出現中文
3、保證所有引用的圖片都能找到
四、整體要求
obj文件mtl文件和引用的所有紋理圖片都要放在同一文件夾下,因爲其他路徑下的圖片讀取不到。就會報錯。如:
obj、mtl和mtl中引用到的圖片都放在同一文件夾內
五、obj轉換成b3dm可以給每個模型添加屬性數據,比如說模型的高度height,以使模型能根據height屬性渲染模型的顏色。
要給模型添加屬性數據,obj文件中必須存在每一個模型的名稱(或者說唯一標識),就是obj文件中o開頭的行,並且整個obj和mtl文件不能出現中文。
要給模型添加屬性數據可以使用excel文件:
屬性excel文件第一行保證爲標題,且不能出現中文;第一列(A列)爲模型名稱(唯一標識)對應obj文件中的o開頭的行,就是名稱;其他事屬性可以隨意添加。
如下是讀取的屬性數據
輸出的b3dm使用utf8編碼打開後可以看到屬性如下
三、shp簡單面文件轉換成obj模型。比如shp中是一個正方形的面,有一個屬性highs是10,則會轉換成一個高位10的正方體。
Shp文件要求
- shp必須是面文件
- shp使用WGS_1984_Web_Mercator_Auxiliary_Sphere座標系,即(3857)
- shp屬性表中有double類型的字段highs,表示模型的高度。如果沒有則生成的模型只有一個面
- shp屬性表中有文本類型的字段names,用來表示每個模型的名稱。如果沒有則會有一個默認的名稱
左邊爲shp文件矢量化故宮的某一小塊,右邊爲轉換成obj後再blender中的效果(注意生成的obj文件一定要使用三維軟件如blender導入後,再導出才能使用本軟件轉換成gltf和3dtiles)
軟件界面如上圖