Unity - RenderDoc 抓帧导出 FBX(带UV)


目的

之前写过一篇:unity shader - 圣斗士星矢 人物 shader 还原 - GPA 抓帧提取资源、shader,ROOT权限、救砖、ro.debuggable=1(最终还是RenderDoc无法抓帧)

这篇文中使用了 GPA, RenderDoc
GPA 可以抓帧 模拟器上 APK 安卓运行中的信息
RenderDoc 的,我死活抓不了(以前低版本的 安卓 手机、RenderDoc 抓帧是很方便的,不知道为何,现在抓不了了)

然后 GPA 能抓,但是模型导出来,没有 UV:GPA: No UV map support? - (帖子说是 DX12 可以导出,但是模拟器设置不了 DX12 的图形 API,-_-!!!)

所以就使用了 RenderDoc 来抓模型,并带上有效的 UV


环境

Unity : 2020.3.18f1
RenderPipeline : URP
Unity Package : FBX Exporter 4.1.2

在这里插入图片描述


演示工具导出

请添加图片描述


先从 RenderDoc 中导出 CSV

因为 RenderDoc 可以导出有效的 vertex buffer 信息,导出的是 csv 格式的数据

比如这些数据,如下图:
在这里插入图片描述

可以看到,每个顶点的 vertex id, index, position, normal, tangent, uv 都清清楚楚的

所以工具还是很好写的


开始撸工具

在这里插入图片描述


RDC_CSV

在这里插入图片描述

就是我们首选需要设置的 CSV 文本对象
如果不设置,那么会显示一个提示:Have no setting the RDC_CSV yet!
在这里插入图片描述


FBX Name

在这里插入图片描述
FBX 的名字,可以指定 Prefab, Model, Material, Folder, GameObject.name 的名字
在这里插入图片描述


Output Path(Dir)

输出的路径(目录)
在这里插入图片描述

可以点击 Browser… 按钮点调整输出的路径所在
请添加图片描述

也可以直接编辑 Output Path(Dir) 右边的输入框,如下:
请添加图片描述


Export FBX

Export FBX 没啥好说,就是导出了


Model Options

模型导出选项


Is From DirectX CSV

CSV 导出的配置,是否来源于 Graphics API 为: DirectX 系列的图形 API
如果是的话,会对 UV 坐标中的 V 反转,比如:UV.y = 1 - UV.y;


Is Recalculate AABB

是否调用 Mesh.RecalculateBounds();


Vertex Offset/Rotation/Scale

就是 TRS 矩阵信息,会在所有顶点数据导出前,进行 TRS 矩阵变换
在这里插入图片描述


Has UV0/1/2/3/4/5/6/7

是否带有 UV0~7 中指定的数据,UV0默认是勾上的,因为比较常用,一般模型都会有


Normal/Tangent Import Type

法线 和 切线 的导入类型,控制的是 法线,切线的导入方式,分别使用类型定义为: Unity 中的 ModelImporterNormalsModelImporterTangents
在这里插入图片描述


Material Options

材质选项


Material Set Type

材质的设置类型

在这里插入图片描述

分别为:创建新的材质使用现存材质资源


Shader - Create New

下面是 Create New 时的选项
在这里插入图片描述
使用 创建新的材质 方式时显示,指定新建材质使用的 shader


Main Texture - Create New

使用 创建新的材质 方式时显示,指定新建材质使用的 主纹理


Material Asset - Using Exsit Material Asset

下面是 Using Exsit Material Asset 时的选项
在这里插入图片描述
显示设置选择需要使用的 现存材质对象


总结列表

PropertyL1 PropertyL2 Descriptions
RDC_CSV 就是我们首选需要设置的 CSV 文本对象,如果不设置,那么会显示一个提示:Have no setting the RDC_CSV yet!
FBX Name FBX 的名字,可以指定 Prefab, Model, Material, Folder, GameObject.name 的名字
Output Path(Dir) 输出的路径(目录),可以点击 Browser… 按钮点调整输出的路径所在, 也可以直接编辑 Output Path(Dir) 右边的输入框
Model Options 模型导出选项
Is From DirectX CSV CSV 导出的配置,是否来源于 Graphics API 为: DirectX 系列的图形 API,如果是的话,会对 UV 坐标中的 V 反转,比如:UV.y = 1 - UV.y;
Is Recalculate AABB 是否调用 Mesh.RecalculateBounds();
Vertex Offset/Rotation/Scale 就是 TRS 矩阵信息,会在所有顶点数据导出前,进行 TRS 矩阵变换
Has UV0/1/2/3/4/5/6/7 是否带有 UV0~7 中指定的数据,UV0默认是勾上的,因为比较常用,一般模型都会有
Normal/Tangent Import Type 法线 和 切线 的导入类型,控制的是 法线,切线的导入方式,分别使用类型定义为: Unity 中的 ModelImporterNormalsModelImporterTangents
Material Options 材质选项
Material Set Type 材质的设置类型, 分别为:创建新的材质使用现存材质资源
Shader - Create New 使用 创建新的材质 方式时显示,指定新建材质使用的 shader
Main Texture - Create New 使用 创建新的材质 方式时显示,指定新建材质使用的 主纹理
Material Asset - Using Exsit Material Asset 显示设置选择需要使用的 现存材质对象

Project

github : javelinlin/Testing_CSV2Mesh_Tool


References

猜你喜欢

转载自blog.csdn.net/linjf520/article/details/125320984