F3D 上手指南:一个用一条命令打开 40+ 种 3D 模型的轻量 3D 查看器
F3D 上手指南一个用一条命令打开 40 种 3D 模型的轻量 3D 查看器【免费下载链接】f3dFast and minimalist 3D viewer.项目地址: https://gitcode.com/GitHub_Trending/f3/f3dF3D 是一款开源的轻量级 3D 查看器从 glTF、STL、STEP 到点云和科学数据集40 多种 3D 格式开箱即看实时物理渲染、光线追踪都有还完全可以用命令行驱动——一行命令就能把任意 3D 模型变成 PNG 截图非常适合做模型质检、批量缩略图和自动化渲染流水线。它内置的 libf3d 库C17 API另有 C、Python、Java、JavaScript 绑定还能直接嵌进你自己的程序。打开 3D 模型的麻烦格式太多工具太重设想一下同事发来一个 glb客户又丢来一份 STEP 和一堆 STL接着让你顺手给 200 个文件各出一张预览图。打开重量级建模软件启动慢、只为瞄一眼模型有点大材小用系统自带查看器.step、.usda、.pcd根本不认识更别提批量出图。F3D 就是为这种场景做的一个极小的可执行文件打开文件几乎不用等默认视角和光照都调好了直接能看。它没有菜单、没有按钮——所有行为相机、光照、分辨率、输出都可以用命令行参数控制这意味着它既能当桌面查看器也能当无头渲染器塞进脚本里。对透明材质渲染、动画播放这些看着要折腾半天的事它也都有现成的快捷键或参数。F3D 安装步骤Windows、Linux、macOS 装完就能用三大平台的官方安装包都在 F3D 官网的下载页提供页面同时列出各平台的安装方式装完终端里就能直接敲f3d命令。如果发行版软件源里没有从源码构建也很直接依赖就是 CMake、VTK 9.4 和 C20 编译器git clone https://gitcode.com/GitHub_Trending/f3/f3d cd f3d cmake -B build -DCMAKE_BUILD_TYPERelease cmake --build build --parallel几个平台小提醒macOS官方.app包未签名首次打开若提示已损坏执行xattr -cr /Applications/F3D.app即可见 doc/user/14-LIMITATIONS_AND_TROUBLESHOOTING.md。Windows便携版未做代码签名弹安全警告时点仍要运行如果从命令行执行f3d.exe看不到任何输出换用f3d-console.exe。Python 用户库的绑定也走 pippip install f3d就能在脚本里调用注意 pip 版本暂不含光线追踪需要请自行编译。装好之后第一条命令就是f3d model.glb # 交互查看拖拽文件进来也行 f3d model.glb --outputrender.png # 不开窗口直接渲染成图片打开后按 F1 会弹出快捷键速查表Enter 重置相机、空格播放动画、G 切换地面网格基本够日常使用了。F3D 3D 格式支持一览表40 格式与插件机制F3D 把格式支持做成插件每个插件只负责一类读取器独立编译、按需启用。官方发布包会自动加载全部插件如果你用包管理器装的某些插件可能在单独的软件包里需要用--load-plugins名称显式加载。仓库里 plugins/ 目录可以直观看到这种切分方式。类别代表格式负责插件网格.stl.ply.obj.vtk/.vtp/.vtu/.vti/....ptsnative场景含灯光/相机/动画.gltf/.glb.usd/.usda/.usdc/.usdz.fbx.3ds.dae.off.abc.drcnative、usd、assimp、alembic、dracoCAD.step/.stp.iges/.igs.brep.fcstd.ifcocct、webifc点云.pcd.las/.laz.ptx.slpk高斯泼溅.splat/.spzpdal、native科学数据.vtkhdf.ex2/.exo.nc.vdb.dcm/.nrrd/.mhdhdf、vdb、native完整的格式清单、动画与流式读取从 stdin 边读边渲染支持情况见 doc/user/02-SUPPORTED_FORMATS.md。装完自己跑一条f3d --list-readers就能确认当前构建到底带了多少读取器——它按你的实际安装环境输出最可靠。想从源码裁剪时对应开关是 CMake 里的F3D_PLUGIN_BUILD_*变量如F3D_PLUGIN_BUILD_OCCT不开就不会引入相应依赖这也是核心能保持轻量、装在小机器上的原因。F3D 自带的默认 HDRI 环境贴图没指定贴图时物理渲染就靠它打光F3D 渲染选项物理渲染、光线追踪与抗锯齿的取舍F3D 默认就是物理渲染PBR让材质按真实反射规律着色不需要额外设置。在它之上几个增强开关各有脾气效果命令适合什么代价光线追踪-r--raytracing高质量预览、反射与焦散展示高需编译时带 OSPRay样本数用--raytracing-samples调降噪-d低样本光线追踪下去掉噪点中抗锯齿-a fxaa/ssaa/taa消除模型边缘锯齿fxaa 最便宜ssaa 质量最好但最贵taa 不能用于离屏出图环境光遮蔽-q凹陷处加暗立体感更强中HDRI 环境光-f--hdri-ambient让金属、玻璃看起来像真的低色调映射-t把 HDR 亮度正确压到屏幕低棋盘格贴图--checkerboard快速核对 UV 与几何完整性低一个实用组合出产品级静帧就f3d model.glb -r --raytracing-samples16 -d -t --outputshot.png效果和速度之间自己取平衡平时翻模型就别开-r实时交互时物理渲染 -a fxaa已经足够流畅。天空盒也可以整体虚化--blur-coc控制模糊半径适合做带氛围感的展示图。用 F3D 批量导出渲染图一条 shell 命令就够命令行模式下--output会跳过交互窗口直接渲染成 PNG配合--resolution宽,高注意是逗号分隔、--no-background透明底和相机参数如--camera-azimuth-angle、--camera-index选择文件内置相机就能把出图流程完全参数化。批量任务写个循环即可mkdir -p renders for f in models/*.glb models/*.stl models/*.obj; do f3d $f --outputrenders/$(basename ${f%.*}).png \ --resolution1600,900 --anti-aliasingfxaa done几个自动化里常用的小技巧文件名支持模板变量比如--outputrenders/{file}_{frame}.png里的{frame}可让动画逐帧导出--watch会监听文件变化自动重载改模型看效果很方便--config指定配置文件后同一批文件可以按后缀匹配不同的默认参数省得每个参数都写一遍。参数全集和说明在 doc/user/03-OPTIONS.md离线渲染、视频导出--output-video也都覆盖到了。把 libf3d 嵌进自己的程序C 与 Python 极简示例不想走命令行时libf3d 的路径非常短建一个 enginetrue表示离屏窗口不开任何界面往 scene 里加文件然后让 window 渲染出图。C 侧完整工程见 examples/libf3d/cpp/render-image/#include f3d/engine.h int main() { f3d::engine::autoloadPlugins(); auto eng f3d::engine::create(true); eng.getScene().add(model.glb); f3d::image img eng.getWindow().setSize(1280, 720).renderToImage(); img.save(out.png); }Python 侧pip install f3d之后示例源自 examples/libf3d/python/render-image/import f3d eng f3d.Engine.create(True) # 离屏窗口 eng.window.size 1280, 720 eng.scene.add(model.glb) eng.window.render_to_image().save(out.png)选项、相机、动画、视频编码等能力在两种语言里是一一对应的更多花样Qt 集成、QML、交互应用、缩略图服务可以直接抄 examples/libf3d/ 下的现成工程绑定细节看 doc/libf3d/04-LANGUAGE_BINDINGS.md。F3D 常见问题格式打不开、渲染慢、内存高格式打不开先跑f3d --list-readers确认你这份构建到底带没带对应读取器。包管理器装的版本常把插件拆成独立软件包装上后用--load-pluginsocct这类参数加载即可。另外两类看起来打不开其实有说法.ply存高斯泼溅数据时F3D 不会自动猜需要加--point-sprites-size1 --point-spritesgaussian --coloring-modedirectDXF 只支持折线加 3D 面片复杂图纸显示不全属于已知限制详见 doc/user/14-LIMITATIONS_AND_TROUBLESHOOTING.md。渲染慢光线追踪是头号嫌疑先去掉-r对比一下要保留就压样本--raytracing-samples2并开-d降噪。抗锯齿从ssaa换到fxaa离屏出图时直接不用 taa。内存占用高出缩略图场景可以加--max-size1024单位 MiB超过阈值的大文件直接拒绝加载批量跑图不怕被单个巨无霸拖垮。超大网格/体数据可以走流式读取部分格式支持从 stdin 边读边渲染加载过程加--loading-progress还能看到进度条。顺带一提如果模型看起来到处是镂空、面片反了多半是数据里有透明部分按P即-p开启透明混合就能恢复。下一步文档、示例与贡献F3D 的价值在于把看一眼模型这件事做到了几乎零成本同时保留了一整套可以脚本化的渲染能力——从桌面双击到 CI 流水线用的是同一套参数。想继续深入入口都在这用户文档从 doc/user/01-QUICKSTART.md 开始库的 API 总览在 doc/libf3d/01-OVERVIEW.md可运行的示例工程都在 examples/libf3d/。想参与项目的话CONTRIBUTING.md 里写清了流程和代码风格版本动态可以看 doc/CHANGELOG.md。【免费下载链接】f3dFast and minimalist 3D viewer.项目地址: https://gitcode.com/GitHub_Trending/f3/f3d创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考