原文鏈接在這里 http://dev.cra0kalo.com/?p=213
背景信息
Intel的GPA本身是一款圖形分析軟件,並沒有設計從3D程序里抓取模型資源的功能,但這里作者是通過hook GPA應用,讓他可以把捕捉到的頂點緩沖和索引緩沖。
Intel GPA 64位的下載鏈接
Intel GPA 32位的下載鏈接
patch的補丁見附件
http://files.cnblogs.com/TracePlus/FrameAnalyzer.patched.zip
設置和捕捉
安裝GPA后,啟動Graphics Monitor,瀏覽你的3D應用,並選擇,這里是ce3.6的sdk demo
有些游戲或應用崩潰的話,可以關閉tracing
進入游戲后,可以看到GPA的HUD,按CTRL+F1可以顯示全部UI,CTRL+SHIFT+C就可以捕捉當前的frame
這時,即便關閉游戲后,也可以運行Graphics Frame Analyzer,來分析已經捕捉的frame。
或者運行附件里的patched的程序,還可以捕捉模型數據。
找到繪制部分,選擇右邊Geometry table,就可以看到這個draw call繪制的幾何體,找到你想要導出的模型,右鍵的話,會出現額外一個save geomegry的選項
選擇導出格式,就可以保存幾何體的信息了,可惜沒有UV- -
這個dc使用的貼圖也可以在texture table里導出
很可惜,目前這個導出功能並不能導出法線和更多信息。。如果有經驗的美術自己重新分UV和繪制貼圖了。。
使用GPA來分析游戲的繪制
GPA另外一個用處是可以分析別人游戲的繪制技術,而且截取的frame也方便分析(保存在文檔/GPA_2014_XX里)
像一些需要登錄器啟動的游戲,可以在這里勾選自動檢測啟動的應用。這里用Blade and Soul的“模擬器”來做個測試,
基本的調試功能,教學關0 0。
還是登陸界面分析起來簡單一些
這里就可以定位到繪制角色
這樣就定位到繪制角色用draw call上了。接下來可能會具體分析下BNS角色的繪制,誰要是已經有進展了也分享些經驗給我吧