Renderdoc Mesh 一键导出 FBX:从预览表到 DCC 的 3 步路径
【免费下载链接】RenderdocResourceExporterThe main feature is to export mesh.Because I don't want to switch between other software to do this.So I wrote this thing.项目地址: https://gitcode.com/gh_mirrors/re/RenderdocResourceExporter
你在 Renderdoc 的 Mesh Preview 里已经看清了顶点、法线、UV,但模型还"困"在 capture 文件里:想送进 Blender 或 Maya,得先把整张表另存成 CSV,再手动喂给别的转换工具。RenderdocResourceExporter 把这条链收进 Renderdoc 本身——一个扩展插件,在 Mesh Preview 面板上直接挂出 Export FBX 菜单,选好保存位置,FBX 就落在指定目录,全程不离开 Renderdoc。
一分钟速览:替换的是哪套旧流程
一句话:把"手动另存 CSV → 切换软件 → 转换 → 回 DCC 核对"约 5 步的流程,压成"打开 Mesh Preview → 点 Export FBX → 选保存位置"3 步。
| 环节 | 手动流程 | 插件流程 |
|---|---|---|
| 步骤数 | 约 5 步 | 3 步 |
| 软件切换 | 2 次(Renderdoc → 转换工具 → DCC) | 0 次 |
| 中间文件 | CSV 需手动搬运 | CSV 自动生成,与 FBX 同名同目录 |
| 典型耗时(单 mesh) | 约 10 分钟起步,含来回切换 | 秒级,导出完自动打开保存目录 |
耗时列是典型场景下的估算,网格越复杂、手动流程越慢。流程缩短的前提是装得上,而安装只有一条命令。
安装插件:1 个脚本送进 Renderdoc 扩展目录
前提是 Windows 加 Renderdoc ≥ 1.2(扩展声明的 minimum_renderdoc 就是 1.2)。在仓库根目录运行:
install.bat脚本只做一件事:把 RenderdocResourceExporter 整个目录复制到 %APPDATA%\qrenderdoc\extensions\RenderdocResourceExporter。转换用的 RenderdocCSVToFBX.exe 和它依赖的 libfbxsdk.dll 都放在 fbx_res 目录里随包带走,不用另装 FBX SDK。重启 Renderdoc,安装完成。
装好之后,先跑通一次导出,验证链路没问题。
跑通第一次导出:2 次点击加 1 个保存框
- 打开任意带网格的 capture,进入 Mesh Preview,选中要导出的 mesh。
- 点面板菜单里的 Export FBX,弹出 FBX Export Option 选项窗,界面语言可在其中切换中英文。
- 保持默认勾选,点 OK,在保存框里指定 xxx.fbx。
插件会在 FBX 同目录生成同名 CSV 作为转换输入,再调 C++ 核心完成转换,完成后弹提示并自动打开保存目录。整条链路的注册与调度入口在:
核心源码:RenderdocResourceExporter/init.py
那 5 个勾选项和背后的 CSV 到底控制什么?把数据流拆开看。
导出到底做了什么:预览表到 FBX 的 3 段流水
第 1 段:读表。插件直接从 Mesh Preview 的 QTableView 取行列数据逐行写入 CSV,列名(POSITION.x、NORMAL.x、TEXCOORD0.x 等)就是后段 C++ 解析的依据。
核心源码:RenderdocResourceExporter/fbx_res/mesh_to_csv.py
第 2 段:参数拼装。选项窗的 5 个勾选框被写成 5 个 0/1 参数,拼进命令行传给 exe。
核心源码:RenderdocResourceExporter/fbx_res/csv_to_fbx.py
第 3 段:C++ 转换核心。RenderdocCSVToFBX.exe 用 FBX SDK 读 CSV:按 IDX 去重得到顶点表,每 3 行重建一个三角形面,最后按 FBX 2014 兼容格式写出。两个值得提前知道的硬编码:顶点位置统一乘 100;面数据按三角形组织。
核心源码:RenderdocResourceExporter/fbx_res/RenderdocCSVToFBX/RenderdocCSVToFBX/RenderdocCSVToFBX.cpp
数据流看清了,剩下的就是按需勾选和命令行直调。
导出选项怎么配:5 个开关加 1 条命令行
GUI 侧就是选项窗里的 5 个复选框,默认全开:
- Export Normal:带顶点法线
- Export Tangent:带切线,含 w 分量
- Export UV / UV2 / UV3:三套纹理坐标,对应 TEXCOORD0/1/2
默认全开适合"先全带上、回 DCC 再删"的稳妥策略;只关心几何时把多余项勾掉,FBX 更干净。如果你已经有一批 CSV,比如之前手动导过,可以跳过 GUI 直接调 exe,参数位序固定:
RenderdocCSVToFBX.exe mesh.csv 1 1 1 0 0第 1 个参数是 CSV 路径,后 5 位依次是 normal/tangent/uv/uv2/uv3 的开关,1 开 0 关。csv_to_fbx.bat 干的就是这件事,照抄即可。
参数和流程都齐了,最后看一眼代码怎么分层,方便你判断该改哪里。
拆解模块分工:Python 插件层加 C++ 转换核心
- Python 插件层(RenderdocResourceExporter/):菜单注册、选项窗、预览表转 CSV,跑在 Renderdoc 进程内;
- C++ 转换核心(fbx_res/RenderdocCSVToFBX/):CSV 解析加 FBX 写出,独立 exe,不依赖 Renderdoc;
- Qt 通用件(qt_utilities/):进度条、设置存取,两层共用。
核心源码:RenderdocResourceExporter/qt_utilities/
上手后最常撞的其实是三件小事,提前说清楚能省不少排查时间。
排掉 3 个高频问题:菜单不出现、尺寸不对、CSV 残留
菜单里没有 Export FBX?注册时有个判断:当前 Renderdoc 支持 mesh 预览才挂菜单,且版本要 ≥ 1.2。确认打开的是带网格的 capture,再彻底重启 Renderdoc。
模型进 DCC 后尺寸差很多?转换核心把位置统一乘了 100,单位解释交给各 DCC。说白了,差 100 倍是预期行为,直接缩放补偿,不是 bug。
目录里为什么留着同名 CSV?它是转换输入,插件用完不自动删。要重跑转换器就留着,不要就手动删,不影响已生成的 FBX。
代码与问题反馈都在仓库里:
git clone https://gitcode.com/gh_mirrors/re/RenderdocResourceExporter装一次,之后每次导出 mesh 都省掉两次软件切换——从你下一篇 capture 开始试。
【免费下载链接】RenderdocResourceExporterThe main feature is to export mesh.Because I don't want to switch between other software to do this.So I wrote this thing.项目地址: https://gitcode.com/gh_mirrors/re/RenderdocResourceExporter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考