RenderDoc[01] 使用RenderDoc 分析Android游戏(免Root)
1.背景
这几天玩了一个美术表现不错的游戏,忍不住想扒点模型资源和效果。
直接用UnityStudio解包拿到fbx。
但是一起解压出来的三张贴图,一张普通贴图,一张法线,还有一张就难住我了。
这个绿色的是什么用处的,在群里问了一圈小伙伴也表示不知道?
没有什么头绪,那就只好用GPU分析软件来调试。
上一次用GPU分析软件还是2年前了,用的是Mali的MGD,需要搭配Root的手机。
现在手上只有一台自用红米Note8,没有Root,于是本次使用群大佬推荐的RenderDoc。
本文转自https://huutu.blog.csdn.net/article/details/111659729
RenderDoc之前我只在PC上用过,没想到对Android支持也如此完善,有多完善,往下看就知道。
2.目标
这次分析,主要解决3个疑问:
1.美人鱼的三张纹理中,绿色的那张是什么用途?
本文转自https://huutu.blog.csdn.net/article/details/111659729
2.游戏中bloom的方式
3.冰冻特效如何制作
3.RenderDoc调试分析基础
官网:https://renderdoc.org/
GameDevTools已经集成,搜索 RenderDoc即可下载运行。
GameDevTools是一套游戏开发常用工具集,输入关键词即可找到想要的工具。
目前托管在Github:https://github.com/ThisisGame/GameDevTools
安装后打开,界面如下:本文转自https://huutu.blog.csdn.net/article/details/111659729
3.1 连接Android手机(无需root)
手机开启调试模式,打开AndroidStudio看logcat是否正常输出Log,确认连接OK。
点击RenderDoc左下角,切换到手机进行连接。
本文转自https://huutu.blog.csdn.net/article/details/111659729
选择手机之后,会通过adb,往手机上安装一个RenderDocCmd的插件app,然后启动。
RenderDocCmd hook了Android的 gles渲染接口,然后将数据回传到PC端的RenderDoc。
上图表示正在启动手机上的RenderDocCmd。
上图表示手机上的RenderDocCmd已经启动成功,可以开始调试了。
同时,你的手机上应该是这样的:
3.2 调试目标游戏
本文转自https://huutu.blog.csdn.net/article/details/111659729
按上图选择目标游戏启动Activity。
选择好之后,手机会断开连接。
重新选择手机连接。
点击Launch按钮,开始调试目标游戏。
一般都会收到下图错误。
这是因为,目标游戏是打的Release模式APK,而不是Debug模式的。
那怎么办呢?
不要急,RenderDoc为我们提供了一键重新打包服务。
来一番骚操作。
首先,选择另一个游戏,然后Launch,应该也是上面的错误。
然后再选择目标游戏。这样来回选择,直到选择目标游戏的时候,出现下图的提示。
本文转自https://huutu.blog.csdn.net/article/details/111659729
点击黄色区域,就会自动对选中的游戏进行重新打debug包了。
重新打包完成之后,再次点击 Launch,这次一定成功,目标游戏在手机上自动运行起来了。
RenderDoc界面也发生了变化。
点击箭头所指按钮,即可截取当前帧所有渲染事件。
截取的这一帧数据,显示在列表区域中。
此时截取的这一帧数据,仍然保存在手机上,一旦手机断开,就不可用。
所以最好立即保存到电脑磁盘中。 对封面图片右键,选择
save,然后找个地方存起来。
双击封面图片,打开详细Drawcall列表。
左侧列表中,就是每一次Drawcall。
中间的大图默认就是当前Drawcall后的效果。
右边的小图是输入输出。本文转自https://huutu.blog.csdn.net/article/details/111659729
和Unity的FrameDebuger类似,其实所有的GPU分析工具都差不多。
4.RenderDoc分析具体场景
下面使用RenderDoc来分析开始提到的3个问题。
4.1 美人鱼的三张纹理中,绿色的那张是什么用途?
在RenderDoc中开始调试目标游戏,玩一会儿游戏,等到出现美人鱼的时候,截取一帧数据进行分析。
在左侧渲染事件窗口,鼠标单击,找到渲染美人鱼模型的地方。
当前界面示意如上图。
右侧Inputs纹理列表,表示当前提交的纹理资源,以及shader变量名字。
从变量名字,就可以看出这个纹理的作用。
绿色的纹理,传递到shader的MetallicGlossMap变量,说明这是一张金属光泽的贴图。
其他贴图名称及作用
BumpMap 凹凸贴图(用来呈现衣服褶皱之类的凹凸效果
AlphaMask 不透明度贴图(可以让你的服装呈现半透明状态)
MetallicGlossMap 金属反光度贴图(影响质感跟光泽度显示的一张贴图)
这个名称很熟悉,在Unity Standard Shader里,就有。
那么不管目标游戏是不是用Unity Standard Shader,我这里就先用了。
将绿色贴图,拖到 Metallic里。
效果如下:
4.2 游戏中bloom的方式
Bloom 俗称全屏泛光,就是物体周围有一层光晕的效果,其实就是近视眼不带眼睛看灯的感觉。
本文转自https://huutu.blog.csdn.net/article/details/111659729
简单介绍Bloom就是,先普通渲染一次,然后渲染亮度高的物体一次并进行若干次高斯模糊,然后将两次渲染结果混合。
对目标游戏截取一帧进行分析。
步骤1:将普通渲染结果输出到Texture,将其作为输入,计算出较亮部分,输出到Texture。
具体是怎么实现的呢,切换到渲染流水线选项卡 Pipeline State。
后期特效都是在FS中完成,所以这里查看fs shader代码即可。
按图中,第4步,点击Edit查看fs shader代码。
继续按照上面步骤1的方式,对左侧列表渲染事件进行查看。
总结Bloom步骤如下:
最终效果
4.3 冰冻特效如何制作
步骤和上面一样,在游戏中出现冰冻效果时,截取一帧。
找到冰冻效果最开始的EID 1684,按顺序分析。
值得注意的是,这里输出到FBO 尺寸比我的手机尺寸小,这是游戏自动降低画质了。
总结步骤如下:本文转自https://huutu.blog.csdn.net/article/details/111659729
如果要还原效果,就参考Pipeline中给的Shader,在Unity里重写一遍就好。
5.总结
掌握一点OpenGL基础之后,就可以尝试去分析其他游戏的渲染流程,扶着鹰酱过河。RenderDoc又给我们提供了极大的便利,调试其他游戏更加方便,实乃学习必备神器。
RenderDoc[01] 使用RenderDoc 分析Android游戏(免Root)相关推荐
- LSPatch —— 一款基于Android的免root框架
前言 LSPosed(百度百科) 是一个基于 Riru 的 ART hook 框架 (最初用于 Android Pie) ,提供与原版 Xposed 相同的 API, 使用 YAHFA (或 Sand ...
- android 平板root,【Android】免root即能修改Android ID,實現手機平板共用一個Line不互踢...
為何網路上會有人有修改「Android ID」的需求呢? 假設你有A手機與B手機,若把B手機的Android ID改成與A手機一樣,會有許多妙用的地方,例如: 多手機(平板)同時登同一個Line而不會 ...
- android 按键 免root,按键精灵免root版
按键精灵免root版是手机上的键盘模拟软件,可以使用这个软件,自动操作,制作功能强大的脚本.非常多的免费脚本软件可以直接搜索,直接使用.电脑前需要双手操作的动作,使用按键精灵免root版,在手机上也能 ...
- 使用Adreno Profiler分析android游戏
2016-04-17 19:38 by 风恋残雪, 3466 阅读, 0 评论, 收藏, 编辑 http://www.cnblogs.com/ghl_carmack/p/5401906.html 有时 ...
- 用夜神模拟器+GPA分析Android游戏
环境: 1.Intel GPA 18.3 2.夜神模拟器6.0.9.0配置: 夜神模拟器/分辨率设置/手机版 显卡渲染模式/极速模式(DirectX)用GPA启动夜神 按Ctrl+Shift+C截帧 ...
- Dexposed:Android平台免Root无侵入AOP框架
本文来自阿里巴巴技术协会(ATA) 本文首发于 http://www.infoq.com/cn/news/2015/07/dexposed 近日,阿里巴巴无线事业部推出首个重量级Android开源项目 ...
- android root 恢复出厂设置,Android系统 免root 卸载预置应用
如下方法仅能删除当前系统中预置的 APP,恢复出厂设置后,删除的 APP 会恢复.如不清楚包名对应的应用请自行百度,请勿轻易删除未知报名导致系统损坏. 1.关于手机连续点击软件版本号6次,开启手机开发 ...
- 移动叔叔工具箱android,真正免root的移动叔叔工具箱详细使用教程
移动叔叔工具箱的功能 1.移动叔叔工具箱Android是移动叔叔ROM组发布的工具软件 2.通过这个工具箱,你可以直接进入工程模式和Recovery模式,并且在系统内卡刷Recovery模块 ...
- Android手机免root安装Linux+图形化
最近在家呆久了无聊就想把家里闲置的旧手机拿来折腾,经过几天总算差不多了!本来想着使用linux deploy的但是这个软件需要ROOT,而现在手机基本不支持root,我的手机又是华为的(华为的都关闭了 ...
最新文章
- SD销售订单输入成本中心
- 结对编程1 - 四则运算生成器的改进(201421123040,60,61)
- SuperSocket源码解析之开篇 (转)
- 每天一道LeetCode-----根据先序遍历和中序遍历还原二叉树
- 【caffe-Windows】训练自己数据——数据集格式转换
- 帧起始定界符_检测帧起始定界符的方法、装置、设备及计算机存储介质与流程...
- WCF与ASMX Web服务差异比较[译]
- Opencv之使用pylibdmtx解析DataMatrix码
- C/C++ debug(三)
- 如何调节idea jvm的最大内存_那个小白还没搞懂内存溢出,只能用案例说给他听了
- VirtualBox启动虚拟机出错VT-x disable
- 【Excel】数据透视表—标签合并居中
- Keil5的安装破解,包含MDK-ARM和C51
- 手把手教你玩转YOLOX--Windows(上)
- chrome手机版怎么扫描二维码_照片扫描仪软件手机版-照片扫描仪手机版官网版下载v3.2.0...
- 计算机用word做贺卡,利用word制作贺卡
- Codeforce Gym 100015I Identity Checker 暴力
- 作品集也可以很有创意:一款用键盘操控汽车的可交互游戏式个人主页
- C语言程序设计第五次作业——循环结构1
- spring cloud 集成sentinel 报错 Failed to introspect Class