☰
F3D:3条命令免费打开任意3D文件的开源查看器
2026/10/17 2:16:59 网站建设 项目流程

F3D:3条命令免费打开任意3D文件的开源查看器

【免费下载链接】f3dFast and minimalist 3D viewer.项目地址: https://gitcode.com/GitHub_Trending/f3/f3d

F3D 是一款免费的开源 3D 查看器,专为命令行设计。它支持 glTF、USD、STL、STEP、Alembic 等 50 多种格式,从游戏资产到科学数据集都能直接打开,并且完整暴露了渲染选项供脚本调用。如果你不想为看一眼 STL 或 FBX 文件启动大型软件,或者需要在流水线里批量出图,F3D 就是为此准备的工具。

核心能力一览

能力说明适合场景
50+ 格式读取几何数据、点云、体积、科学数据、CAD 交换格式,格式插件可插拔统一管理多来源 3D 文件
命令行全控制数百个选项、配置文件、命令脚本,无人值守运行批量渲染、CI 出图
动画播放支持 glTF/FBX/USD/Alembic 等格式的动画,可指定索引、导出逐帧序列快速预览动画资产
科学数据可视化标量着色、colormap、网格参照、点云显示科研数据检查
libf3d 渲染库C++17 API,附带 C、Python、Java、JavaScript 绑定在自有应用中嵌入 3D 渲染

安装到第一张渲染图

普通用户直接安装发行包即可,装完后终端里会出现f3d命令。开发者想定制格式插件或语言绑定时,从源码构建:

git clone https://gitcode.com/GitHub_Trending/f3/f3d cd f3d mkdir build && cd build cmake .. cmake --build . -j$(nproc)

CMake 变量控制功能开关,比如F3D_PLUGIN_BUILD_OCCT打开 STEP/BREP 等 CAD 格式,F3D_BINDINGS_PYTHON生成 Python 绑定,完整清单见 构建文档。

构建完成后,打开一个文件只需:

f3d model.glb

窗口打开后是交互式视图:左键拖拽旋转、滚轮缩放、Enter复位相机,按F1显示快捷键备忘单。加一个参数就能直接出图:

f3d model.glb --output=render.png

执行后不弹窗口,直接得到一张 PNG。加--no-background输出透明背景,加--resolution控制分辨率。

非交互批量出图

F3D 的所有渲染选项都能从命令行传入,这让批处理非常简单。下面几个选项在无人值守场景里最常用到:

选项作用
--output=<png>渲染到文件,可用{frame}变量导出动画帧序列
--output-video=<file>渲染到视频帧文件,可配合 FFmpeg 封装
--rendering-backend=osmesa强制离屏后端,用于无显示器的服务器
--max-size=<MiB>拒绝加载超过指定大小的文件,生成缩略图时常用
--watch文件在磁盘上变化时自动重载

配合配置文件(--config指定)和命令脚本(--command-script),同一套渲染参数可以固定下来反复使用,适合放进自动化流程。

打开动画并指定播放哪一段

glTF、FBX、USD、Alembic 等格式内嵌的动画可以直接播放。在交互窗口中按W切换当前动画,按Space播放。命令行方式则先选索引再自动播放:

f3d anim.glb --animation-indices=1 --animation-autoplay

--animation-indices=-1表示同时播放文件内全部动画。用--output配合{frame}模板变量可以把选中的动画逐帧导出为图片序列。

科学数据的标量着色与参照网格

打开 VTK 系列(.vtu/.vti)等数据集后,F3D 自动识别几何类型(表面、点云、体积)并给出合理默认显示。标量字段着色加 colormap、水平参照网格,一个命令即可叠加:

f3d data.vtu --grid

网格支持单元尺寸、颜色、反射强度等参数,-e显示单元边线,-x显示坐标轴。完整格式列表及各自的流式读取、动画支持情况,见 支持格式文档;所有渲染选项及效果对比图见 选项文档。

libf3d:把渲染能力嵌入自己的程序

F3D 的核心是一个独立的 BSD 许可库 libf3d,提供 C++17 API,附带 C、Python、Java 和 WebAssembly 绑定。几行代码即可完成离屏渲染并保存图像:

f3d::engine::autoloadPlugins(); f3d::engine eng = f3d::engine::create(true); // offscreen eng.getScene().add("path/to/file.ext"); f3d::image img = eng.getWindow().setSize(300, 300).renderToImage(); img.save("img.png");

它也可以从内存 buffer 加载网格,甚至通过mesh_view派生类做零拷贝的 in-situ 可视化。各语言的完整示例在 examples/libf3d/,API 说明见 libf3d 文档。

什么场景该用、什么场景别用

需要快速查看 3D 文件、批量生成缩略图或渲染图、在 CI 里校验模型能否正常加载、或者给自有程序嵌一个轻量 3D 渲染窗口时,F3D 都很合适。反过来,如果目标是编辑模型、做布尔运算或格式转换,不要用 F3D:官方明确不提供数据加工和导出功能,它只负责读入和显示。

资源索引

  • 快速入门指南:运行、交互、动画的完整入门
  • 支持的文件格式:全量格式表与 reader 级选项
  • 命令行选项:每个选项的默认值与效果对比
  • 交互说明:鼠标、快捷键、截图
  • 贡献指南:构建预设与提交规范

F3D 把"快速看到 3D 数据"这件事做成了一个可以完全用命令行驱动、并能嵌入应用的开源工具,格式、渲染、动画三个维度都留足了参数空间。

【免费下载链接】f3dFast and minimalist 3D viewer.项目地址: https://gitcode.com/GitHub_Trending/f3/f3d

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询