obj转成gltf和3dtiles

2020年11月13日更新:c++版本更新,使1中的commands数字降低,2的帧率提高,优化了性能

 

 

 

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/11EVNu9pF3zKq1aGCEj0Xtw
提取码:06gj

使用说明和要求

一、软件实现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)

 

 

 

 

软件界面如上图
————————————————
版权声明:本文为CSDN博主「mylove10086」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014572215/article/details/88967108

posted @ 2022-09-08 17:32  疯子110  阅读(2195)  评论(0编辑  收藏  举报