unity3d 美术资源测试小结

来源:互联网 发布:java多线程读取大文件 编辑:程序博客网 时间:2024/05/01 23:25


 

通常U3D游戏最关注的是内存和fps,其中内存影响crash率,fps影响游戏的流畅性。本文主要关注fps。影响fps主要是以下几个因素。

本文主要介绍在确定渲染耗时是fps瓶颈的前提下,卡顿帧分析参数的获取。

Adreno profiler的应用

Adreno profiler是高通开发的专业分析高通芯片gpu的工具,是美术分析最方便的工具。简单介绍一下adreno profiler的使用方法。

安装后打开应用,点击connect

通过手机adb连接到pc,也可以通过ip连(同profiler一样也需要在局域网环境下才可以连接),连接成功后会出现下图所示。此步失败率较大,主要原因有:adb不通,手机芯片关闭opengl调试。解决方法会在下次分析中介绍。

然后打开测试应用,点击refresh,出现下图所示,继续点击connect即可。

连接成功后进入主界面,点击ScrubberGL,然后在需要分析的地方点击Capture Frame即可手动截帧,截帧时数据量较大,需要等待时间较长。

左下角是opengl具体渲染的过程中调用的api函数,按顺序点击即可看到渲染顺序,右上角是纹理浏览器,可以看到该帧有那些texture加载进了内存,正下方是一些综合参数,后续会介绍到,右下角是shader查看器,可以更改某个shader的参数,用得较少。

美术参数对应

同屏面数

点击Frame status->Geometry,其中的Total Primitives即是同屏面数。

角色面数

点击左下角的Render calls,选择渲染角色那一个调用,查看element data->GL_TRIANGLES

 

Drawcall次数

点击Frame status->RenderCalls,其中的glDraw *Calls即是。

API Calls

点击Framestatus->General,其中的API calls即是。

贴图总量

点击Framestatus->Miscellaneous,其中的Total Texture Usage即是。

 

Overdraw

点击Framestatus->Overdraw,其中的Average Overdraw即是。

查看绘制顺序是否可优化

点击左下角的RenderCalls,可以看到本帧的具体渲染过程,可以点击查看,确定绘制是否合理,例如是否频繁的clear,可以和unity的drawcalltools相结合查看相同材质的是否已经合理合并等

查看是否有冗余纹理加载

点击右上角Textures->可以查看具体的纹理图,保存后可以查看纹理渲染的哪一部份,确定是否有冗余的纹理加载进内存。通常纹理图经过压缩后多为ETC格式。通常texture压缩会在U3D导入设置里面选择advanced,选择format Automatic Compressed,并取消Generate Mip Maps。

 

0 0
原创粉丝点击