之前写过一篇基于Aderno Profiler的手游效果分析,但这个工具高通早就没有维护了,在使用其分析游戏效果的时候也是错误百出。
还好,失之东隅,收之桑榆:Snapdragon profiler在更新之后要好用许多,足够我们完成对游戏效果的分析了。
本篇主要着眼于介绍工具本身,而不是具体的渲染技术,将以下面这个风动树为例来介绍:
带碰撞的风动树
一 连接手机
调出连接手机的窗口
点击连接
连接成功
二 截取一帧
调出Snapshot窗口
选中游戏,然后点击Take Snapshot
截取完毕之后的界面
三 定位Drawcall(以下简称DC)
定位到绘制树的DC: 风动树所绘制帧
四 分析DC
通过分析贴图、Shader等就基本能还原其效果了,这里分享几个小技巧:
1 定位具体资源
勾选Used,将仅当前DC所用到的资源(贴图、Shader等)显示出来
该帧所用主要资源
2 TEXCOORD0对应哪个贴图?
通过展开DC能看到TEXCOORD0、TEXCOORD1等分别对应哪个贴图
TEXCOORD0对应的是编号为96的贴图
3 修改Shader代码
修改Shader代码并应用,能看到具体的效果
修改树的输出颜色为白色,并应用
4 Program Inspector
通过ProgramInspector窗口,能看到该Shader所采用的全局变量具体的值,这在后续的效果还原中是相当重要的
可以看到具体的全局风向值
五 获取资源
接下来需要获取游戏相关的资源:
1 贴图
贴图很好获取,直接在Profiler中保存即可: 保存贴图
2 模型
通过NinjiaRipper可获取,具体操作可参见其官网
六 在Unity中还原
最后利用获取到的资源,还原出来的效果(带碰撞):
最终效果