如何将DGN转成OSGB文件


【问题】

DGN格式有可能转成OSGB格式吗?

【解决方法】

目前没找到直接将DGN转成OSGB格式的工具,但是发现 GitHub有一个开源工具能够将FBX,OBJ,DEA (collada)格式导出OSGB,工具名字叫 osgconv.exe,并且可以使用同一个安装包内的 osgviewer.exe 工具来查看导出的osgb文件内的模型。

也就是可以先将 DGN转FBX,然后再将FBX转成OSGB格式。

测试了一下,FBX内的材质信息也可以被一起转到OSGB文件中,但是需要将FBX文件使用的材质图片jpg文件都放到FBX文件内记录的正确目录位置下。目前发现这个工具对中文文件名的支持不是很好,所以文件名和路径名最好都是英文,不要有中文,这点应该是GitHub开源代码没有考虑多语言支持的原因。

这两个工具:osgconv.exe和osgviewer.exe,可以从GitHub官网直接下载,下载方法文章后面有说明。

【将DGN转成FBX】

MicroStation或者基于MicroStation的一些专业软件(OpenBuildings Designer, OpenPlant Modeler, OpenRoads Designer等)都可以将DGN转成FBX文件:

通过如下菜单可以找到导出FBX的选项:

菜单 File> Export> Exchange File Types> FBX

关于导出FBX,可以参考此Wiki:导出FBX文件后坐标值与原来DGN不匹配

【将FBX转成OSGB格式的方法】

使用DOS窗口执行以下这个osgconv.exe命令就能将FBX转OSGB,语法如下:
osgconv input.fbx output.osgb

其中input.fbx是要转换的FBX文件,output.osgb是生成的OSGB文件名,要包括正确的文件路径,比如要将文件:myfile.FBX转成myfile.osgb,输入的命令如下:

osgconv.exe D:\Temp-new\osgb\myfile.FBX D:\Temp-new\osgb\myfile.osgb

【查看生成的OSGB文件】

生成的osgb文件可以使用如下命令查看osgb文件内的模型:
osgviewer.exe filename.osgb

例如,要查看刚才生成的myfile.osgb文件的话,就是如下命令:

osgviewer.exe D:\Temp-new\osgb\myfile.osgb


【工具 osgconv.exe,osgviewer.exe 的下载方法】

可以从GitHub官网直接下载osgconv.exe和osgviewer.exe 这两个工具,两个工具都在一个安装包内,解压缩后通过DOS黑窗口执行就可以,GitHub的官网下载地址:

https://openscenegraph.github.io/OpenSceneGraphDotComBackup/OpenSceneGraph/www.openscenegraph.com/index.php/download-section/stable-releases.html

点击下面的二进制编译好的下载包:(选择二进制编译好的安装包就行不需要源代码,开发人员才需要选择源代码)
Binaries :
Windows Binaries provided by OBJEXX Engineering

 

会跳转到如下下载地址:https://objexx.com/OpenSceneGraph.html
可以下载这个 OpenSceneGraph 3.6.5 -- Visual C++ 2022 -- 64-bit -- Release 版本,我这里测试就是使用的这个版本。

 

下载后的文件名字是:OpenSceneGraph-3.6.5-VC2022-64-Release-2023-01.7z,可以将此文件直接解压缩到C盘根目录下,然后在如下文件夹下能够找到 osgconv.exe和osgviewer.exe 这两个工具

C:\OpenSceneGraph-3.6.5-VC2022-64-Release-2023-01\bin

打开DOS窗口的时候,可以在如上目录的资源管理器上部的输入栏直接输入 cmd 命令后按回车键,就能直接打开DOS窗口,并且位于此目录下,这样就可以直接输入osgconv.exe 命令,而不用使用dos的cd命令去更换目录了。

 

如下是一个带材质的FBX文件和生成的OSGB文件的显示效果示例:

FBX文件的显示:

生成的OSGB文件的显示:

 

一些辅助知识:

来源于网络的一些辅助知识:(osgconv.exe 的详细语法可以百度或者去官网GitHub查看)

osgconv.exe是一个用于读取3D数据库并对它们实施简单操作的实用应用程序,支持多种3D格式文件的转换。‌ 它可以将OSGB、OBJ、FBX等格式的文件转换为OSG支持的格式,如.osg和.ive。

基本用法
使用osgconv.exe进行格式转换的基本命令格式如下:

text
Copy Code
osgconv [options] infile1 [infile2 ...] outfile
例如,将多个OSGB文件合并为一个OBJ文件,可以使用以下命令:

text
Copy Code
osgconv -O OutputTextureFiles OSGB文件1 OSGB文件2 OSGB文件3 输出的OBJ文件
例如,将cow.obj转换为cow.ive并压缩自动生成映射纹理,可以使用以下命令:

text
Copy Code
osgconv --compressed cow.obj cow.ive
查看osgconv支持的操作,可以使用以下命令:

text
Copy Code
osgconv --help