手机游戏渲染效果分析

前言

最近常有人问我怎么去分析其它画质比较高的游戏的渲染,比如崩坏3啊,七日之都啊。正好这几天有空,就简单写一篇关于分析其它游戏渲染的文章。这篇文章主要分析手游,PC原理基本类似。另外声明一下,文章的内容目的是为了学习,不用于其它用途。

一、分析工具

分析其它游戏的渲染之前,肯定要有一个合适的工具去抓取游戏GPU的渲染帧。基本不同的GPU厂商都有着自己的图形工具,像NVIDIA的Tegra Graohics Debugger,ARM的Mali Graphics Debugger。本文采用Mali Graphics来抓取分析Android游戏渲染帧,这个工具可以从ARM官网去下载(developer.arm.com)。

安装后,就可以看到下面的界面,里面包括了Framebuffers,Textures,Shaders,这些统统可以被抓取到!接下来我们就一步步去抓取分析渲染流程。

手机游戏渲染效果分析_第1张图片

二、找到一个Android手机并安装目标游戏APK包。

接下来需要一个Android手机,我是有一个专门Root的测试机,最新的Mali工具好像不需要Root了,这个需要自己确定下。至于目标游戏嘛,因为前段时间二次元游戏玩的比较多,就分析一个二次元游戏的吧,顺便学习学习人家怎么做的渲染。

首先,需要去官方找到Mali Graphics这个工具的使用文档,大致叫Mali Graphics Debugger User Guide, 然后按照里面描述的,在Adnroid手机上安装对应的调试软件。

等上面的准备工作做完以后,使用Mali工具连接手机直接进行调试,然后启动游戏,随便进入一个场景,然后可以抓取一帧。如下图,就是抓取的一个场景。Framebuff就是当前屏幕图像,可以看到整个抓取的场景。

手机游戏渲染效果分析_第2张图片

 点击Textures部分,就可以看到当前加载的所有纹理图,如下图所示。可以看到贴图在gpu中的id标识,尺寸分辨率以及所使用的内部压缩格式。

手机游戏渲染效果分析_第3张图片

 点击Shaders部分,可以看到当前的着色程序,如下图。这里的着色器分成顶点和片段两部分,一般顶点和片段着色器id都是连着的。从这里就可以分析每个着色程序占用的时间比例,方便我们去优化着色程序的计算量。

手机游戏渲染效果分析_第4张图片

 只看到着色程序的时间消耗还不够,我们还能看到着色程序源码。双击每条着色器条目,就能看到源码了,如下图。看看里面的注释都还在,是不是特别友好呢~

手机游戏渲染效果分析_第5张图片

这篇文章只是一个大概,就先到这里了,有时间在详细分析了。

你可能感兴趣的:(渲染)