使用 Intel GPA 与 分析3D程序和抓取模型
原文链接在这里 http://dev.cra0kalo.com/?p=213
背景信息
Intel的GPA本身是一款图形分析软件,并没有设计从3D程序里抓取模型资源的功能,但这里作者是通过hook GPA应用,让他可以把捕捉到的顶点缓冲和索引缓冲。
Intel GPA 64位的下载链接
Intel GPA 32位的下载链接
patch的补丁见附件
https://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角色的绘制,谁要是已经有进展了也分享些经验给我吧