obj轉成gltf和3dtiles

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文件要求

  1. shp必須是面文件
  2. shp使用WGS_1984_Web_Mercator_Auxiliary_Sphere座標系,即(3857)
  3. shp屬性表中有double類型的字段highs,表示模型的高度。如果沒有則生成的模型只有一個面
  4. shp屬性表中有文本類型的字段names,用來表示每個模型的名稱。如果沒有則會有一個默認的名稱

左邊爲shp文件矢量化故宮的某一小塊,右邊爲轉換成obj後再blender中的效果(注意生成的obj文件一定要使用三維軟件如blender導入後,再導出才能使用本軟件轉換成gltf和3dtiles)

 

軟件界面如上圖

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章