日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/3/13 编程问答 145 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity - RenderDoc 抓帧导出 FBX(带UV) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 目的
  • 環境
  • 工具入口
  • 演示工具導出
  • 先從 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 中的 ModelImporterNormals 和 ModelImporterTangents


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 時的選項

顯示設置選擇需要使用的 現存材質對象


總結列表

PropertyL1PropertyL2Descriptions
RDC_CSV就是我們首選需要設置的 CSV 文本對象,如果不設置,那么會顯示一個提示:Have no setting the RDC_CSV yet!
FBX NameFBX 的名字,可以指定 Prefab, Model, Material, Folder, GameObject.name 的名字
Output Path(Dir)輸出的路徑(目錄),可以點擊 Browser… 按鈕點調整輸出的路徑所在, 也可以直接編輯 Output Path(Dir) 右邊的輸入框
Model Options模型導出選項
Is From DirectX CSVCSV 導出的配置,是否來源于 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 中的 ModelImporterNormals 和 ModelImporterTangents
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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。