一个基于 Electron 开发的桌面应用程序,用于处理和转换 3D 模型文件,特别针对 OSG (OpenSceneGraph) 和 GIS 相关的文件格式。
🖥️ 平台支持: 目前仅支持 Windows 10/11 x64 系统
OSG GIS Plugins Desktop 是一个跨平台的桌面应用程序,为 osgGISPlugin 项目提供了现代化的图形界面。本项目基于 osgGISPlugin 的核心工具,添加了用户友好的 GUI 界面,使 3D 模型处理变得更加简单直观。
本项目的核心处理工具来源于 @newpeople123 的 osgGISPlugin 项目(基于 commit 17beb15)。感谢原作者提供的优秀 3D 模型处理工具。
- 原项目: 命令行工具,需要手动输入复杂的参数
- 本项目: 图形化界面,通过表单简化参数配置,提升用户体验
- 设计并实现了基于 Electron 的现代化用户界面
- 提供了参数表单化配置,替代复杂的命令行参数
- 增加了实时输出显示和执行状态管理
- 支持文件路径历史记录功能
- 预留了 Cesium 3D 预览功能接口(暂时未实现)
-
模型转换: 支持多种 3D 模型格式之间的转换
- model23dtiles: 将模型转换为 3D Tiles 格式
- b3dm2gltf: B3DM 格式转换为 glTF 格式
-
模型优化:
- simplifier: 模型简化工具,减少模型复杂度
- texturepacker: 纹理打包优化工具
-
交互式界面: 基于 Web 技术构建的现代化用户界面
-
预览支持: 提供预览建议和外部工具链接
-
批量处理: 支持批量文件处理
-
历史记录: 自动保存文件选择路径,提升使用体验
- 前端框架: Electron + HTML + CSS + JavaScript
- 3D 引擎: Cesium.js (已集成但未启用)
- 后端工具: OSG (OpenSceneGraph) 相关命令行工具
- 打包工具: electron-packager
- 支持平台: Windows x64 (界面支持跨平台,核心工具仅限Windows)
osgdesktop/
├── index.html # 主界面文件
├── index.js # Electron 主进程
├── renderer.js # 渲染进程逻辑
├── styles.css # 样式文件
├── tools/ # 工具可执行文件目录
│ ├── model23dtiles.exe
│ ├── b3dm2gltf.exe
│ ├── simplifier.exe
│ └── texturepacker.exe
├── package.json # 项目配置
└── README.md # 项目说明
- 操作系统: Windows 10/11 x64 (必需)
- Node.js: 版本 16.x 或更高
- npm: 通常与 Node.js 一起安装
⚠️ 重要说明: 本应用目前仅支持 Windows 平台运行,因为核心的 3D 处理工具(tools目录下的.exe和.dll文件)只提供了 Windows 版本。虽然 Electron 界面可以在其他平台上运行,但无法执行实际的模型转换功能。并且本人也仅在windows 上做开发测试。
# 克隆项目后,进入项目目录
cd osgdesktop
# 安装项目依赖
npm install# 启动开发模式
npm start应用程序将在开发模式下启动,支持热重载和开发者工具。
F12: 打开开发者工具F5: 重新加载应用程序
# 打包 Windows x64 版本
npm run build打包完成后,可执行文件将生成在 dist/osg-gis-plugins-desktop-win32-x64/ 目录中。
# Linux 平台(仅界面,无法执行工具)
npm run build:linux
# macOS 平台(仅界面,无法执行工具)
npm run build:mac
⚠️ 注意: Linux 和 macOS 版本只能运行界面,无法执行实际的 3D 模型处理功能,因为缺少对应平台的工具程序。如需跨平台支持,需要获取 Linux/macOS 版本的工具文件。
-
Model2 3DTiles
- 选择输入的 3D 模型文件
- 设置输出目录
- 配置转换参数(纹理格式、分块方式等)
- 点击执行转换
-
B3DM to glTF
- 选择 B3DM 格式文件
- 选择输出目录
- 执行转换
-
模型简化器
- 选择需要简化的模型文件
- 设置简化参数
- 执行简化处理
-
纹理打包器
- 选择纹理文件或目录
- 配置打包设置
- 执行纹理优化
- 文件选择: 点击"选择文件"按钮选择输入文件
- 目录选择: 点击"选择目录"按钮选择输出目录
- 参数配置: 在相应的输入框中设置转换参数
- 执行处理: 点击"执行"按钮开始处理
- 查看结果: 处理完成后可点击"打开输出文件夹"查看结果
- 主进程 (index.js): 负责窗口管理、文件对话框、工具进程调用
- 渲染进程 (renderer.js): 负责用户界面交互、参数管理、结果显示
- 样式文件 (styles.css): 使用嵌套样式,提供现代化的用户界面
- 将新的可执行文件放入
tools/目录 - 在
index.js中的tools数组中添加工具名称 - 在
getToolArgs函数中添加参数处理逻辑 - 在
index.html中添加相应的用户界面 - 在
renderer.js中添加交互逻辑
-
打包失败:
- 确保使用的是 electron-packager 而不是 electron-builder
- 检查 Node.js 版本是否兼容
-
工具执行失败:
- 确认 tools 目录中的可执行文件存在
- 检查文件路径是否正确
- 确保在 Windows 系统上运行
-
应用无法启动:
- 清除 node_modules 并重新安装依赖
- 检查 Electron 版本兼容性
-
在 Linux/macOS 上无法执行工具:
- 这是正常现象,当前版本不支持非 Windows 平台
- 界面可以正常显示,但无法执行实际的模型处理功能
# 删除依赖
rm -rf node_modules package-lock.json
# 重新安装
npm installISC License
本项目使用的核心工具(tools/目录下的可执行文件)来源于 osgGISPlugin 项目,请遵循原项目的许可证条款。
- 本项目仅为原始命令行工具提供图形化界面封装
- 核心算法和处理逻辑的版权归原作者所有
- 使用本项目时请同时遵守原项目的使用条款和限制
对于核心工具的功能改进,建议直接向 原项目 贡献。