文章目录

  • 目的
  • 环境
  • 工具入口
  • 演示工具导出
  • 先从 RenderDoc 中导出 CSV
  • 开始撸工具
    • RDC_CSV
    • FBX Name
    • Output Path(Dir)
    • Export FBX
    • Model Options
      • Is From DirectX CSV
      • Is Recalculate AABB
      • Vertex Offset/Rotation/Scale
      • Has UV0/1/2/3/4/5/6/7
      • Normal/Tangent Import Type
    • Material Options
      • Material Set Type
      • Shader - Create New
      • Main Texture - Create New
      • Material Asset - Using Exsit Material Asset
    • 总结列表
  • 后续优化
  • Project
  • References

目的

之前写过一篇: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

(后续有从 GPA 上导出 CSV 来重构模型:可以参考这篇:教你如何使用GPA导出模型,另送一个 GPA CSV2MESH Tool in unity)


环境

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 显示设置选择需要使用的 现存材质对象

后续优化

  • VS Input 数据 可以不从 IDX 开始
  • 可以重新映射 VS Input Semantic 的作用
  • CSV2FBX 工具可以优化: - vertex shader attribute(A2V) 的数据可以用内置分析,也可以用指定名字的分析配置
  • 可以导出,导入 manually semantic mapping 配置的支持

Project

  • javelinlin/Testing_CSV2Mesh_Tool - github
  • Testing_CSV2Mesh_Tool_RenderDoc导出CSV_再导出FBX - 百度网盘
  • Testing_CSV2Mesh_Tool_RenderDoc导出CSV_再导出FBX_2022_07_14 - 百度网盘

References

  • Alunice/TaTa/tree/master/CSV2Mesh
  • Renderdoc扒模型教程
  • 一些卡渲游戏的材质逆向和记录 - 我将工具写完了,才发现这片 blog 是基于 render doc 的 extension 写了 py 插件,非常不错
    • FXTD-ODYSSEY/renderdoc2fbx - 这是 github 该插件的 export fbx 的开源代码,太赞了!后续有空研究一下

Unity - RenderDoc 抓帧导出 FBX(带UV)相关推荐

  1. Revit模型导出fbx带标准材质

    1.安装软件revit2018和Autodesk Navisworks Manage 2018 2.revit导出nwc格式 3.Navisworks软件打开 4.Navisworks导出fbx 5. ...

  2. unity导出fbx模型_Unity批量合并Animation工具/根据已有的Animation文件批量生成带FBX动画工具...

    由于本人现有项目的项目素材大部分都需要继续沿用旧项目的模型与动画,但在接受旧模型动画的时候发现,模型动画由于外包已经丢失了3dmax的源文件,只剩下了一堆AnimationCilp(.anim)文件与 ...

  3. 模型相关:SolidWorks创建Cube模型,在3DMax中给不同面添加不同颜色,导出自带纹理的FBX至Unity

    项目场景: 为了实现将SolidWorks创建的Cube模型,在3DMax中添加不同颜色,导出带有纹理的FBX,导入Unity后不需要再修改其颜色纹理 实现方法: 1.在SolidWorks中创建形如 ...

  4. 【记录贴】Blender怎么把几何节点导出为带动画的FBX

    起因: 为了实现折纸的动画,先在blender里面用了几何节点打关键帧的方式制作动画 然后花了一天的时间找这个几何节点关键帧怎么打成能被导出的fbx,因为要在Unity里面用到这个动画. 几何节点是b ...

  5. 3dmax导出fbx时如何带贴图_houdini | 第一章 第三节 贴图与顶点动画

    大家好,上篇文章介绍了houdini的建模思路与常用节点.本篇文章将介绍houdini材质贴图与顶点动画的设置,其中会用到game_dev模块的节点.若未安装,请查看第一节基础入门与实践中的介绍进行安 ...

  6. max导出fbx动画模型导入unity后播放会出现局部模型扭曲解决办法总结

    **动画模型在max里面播放是好的,看着没问题,但导出fbx到unity里面会出现局部扭曲或部分破面面消失或动画抖动,这个可能是因为unity本身设置问题,也有可能是蒙皮绑定的问题 解决办法 1.模型 ...

  7. 3DMAX、C4D、Maya导出fbx到Unity设置

    3DMAX 1.选中需要导出的模型,在Hierarchy面板Adjust Pivot中点击Affect Pivot Only. 2.接着在下方的Alignment中点击Align to World. ...

  8. RenderDoc塞尔达荒野之息抓帧分析

    RenderDoc是一种抓帧工具,主要用来分析游戏开发中渲染流程,官网: https://renderdoc.org/ 我是用的版本是RenderDoc_1.14_64.zip 塞尔达荒野之息使用Ce ...

  9. 【unity】 untiy中如何导出FBX

    打开unity 菜单中Window -----Package Manager 点击下面的Adv- 勾上Enable 选择 I understand 关掉窗口 选择下面的 Unity Registry ...

最新文章

  1. 海量存储系列下--转载,值得一读
  2. GDCM:gdcm::SequenceOfItems的测试程序
  3. C++中各种智能指针的实现及弊端(四)
  4. maven中心仓库OSSRH使用简介
  5. 一次完整的性能测试过程
  6. jfinal项目部署服务器,jfinal undertow项目再集成JDK,一键安装系统服务,让部署再快一点...
  7. 荣耀Magic 3渲染图曝光:超大主摄暗示顶级成像效果
  8. windows共享文件设置虚拟服务器访问,怎么让虚拟机和宿主机之间互相访问共享文件夹...
  9. 2020最新最稳微信公众号爬虫
  10. 优化算法3--蚁群算法(原理)
  11. 地面波天线怎样能多收台_教你怎样挑选DTMB地面波天线
  12. DW2019HTML中没有文本对象,Dreamweaver CC2019文字或图片添加空连接方法
  13. windows怎么设置始终以管理员身份运行
  14. 带T和Z的时间字符串转Long型
  15. 20 | 幻读是什么,幻读有什么问题?
  16. (附源码)计算机毕业设计SSM精品旅游项目管理系统
  17. Python爬虫实战:分析《战狼2》豆瓣影评
  18. OPPO消息推送服务器,OPPO推送平台服务端API.PDF
  19. php商城后台管理,商城后台管理系统
  20. 以安全为重,利尔达推出燃气表报警器联动解决方案

热门文章

  1. 蒲公英 · JELLY技术周刊 Vol.26: 请问您这个月要来点肝么?
  2. 七日杀Liunx SteamCMD开服超详细教程及服务器配置需求
  3. 项目中身份证有效期的判断规则
  4. 如何修改 Kubernetes 节点 IP 地址?
  5. 遍历同辈节电的方法_家庭节水节电的24个好方法
  6. 学习如逆水行舟,只有坚持不断的学习,才能保持进步!我置顶了这些公众号
  7. 万彩办公大师多页PDF文档去掉空白部分合并到同一页
  8. 基于双月数据集利用最小二乘法进行分类
  9. 单源最短路径bellman算法
  10. tilemap 菱形_Tilemap