1 移动平台的特点
和PC平台相比,移动平台上的GPU架构有很大的不同。由于处理资源等条件的限制,移动设备上的GPU架构专注于尽可能使用更小的带宽和功能,也由此带来了许多和PC平台完全不同的现象。
由于芯片架构造成的不同,一些游戏往往需要针对不同的芯片发布不同的版本,以便对每个芯片进行更有针对性的优化。尤其是在Android平台上,不同设备使用的硬件,如图形芯片、屏幕分辨率等,大相径庭,这对图形优化提出了更高的挑战。相比与Android平台,iOS平台的硬件条件则相对统一。
TBDR架构基础http://t.csdn.cn/3O9Is
2 影响性能的因素
CPU主要负责保证帧率,GPU主要负责分辨率相关的一些处理。
游戏性能瓶颈的主要原因:
(1)CPU
- 过多的draw call。
- 复杂的脚本或者物理模拟。
(2)GPU
- 顶点处理:过多的顶点;过多的逐顶点计算。
- 片元处理:
➢过多的片元(既可能是由于分辨率造成的,也可能是由于overdraw造成的)。
➢过多的逐片元计算。
(3)带宽
- 使用了尺寸很大且未压缩的纹理。
- 分辨率过高的帧缓存。
优化技术:
(1)CPU优化
- 使用批处理技术减少draw call数目。
(2)GPU优化
- 减少需要处理的顶点数目。
➢优化几何体。
➢使用模型的LOD (Level of Detail)技术。
➢使用遮挡剔除(Occlusion Culling) 技术。 - 减少需要处理的片元数目。
➢控制绘制顺序。
➢警惕透明物体。
➢减少实时光照 - 减少计算复杂度。
➢使用Shader的LOD (Level of Detail)技术。
➢代码方面的优化。
(3)节省内存带宽
- 减少纹理大小。
- 利用分辨率缩放。
3 Unity中的渲染分析工具
3.1 渲染统计窗口
显示当前游戏的各个渲染统计变量。
Game视图右上方菜单——Stats:包含音频,图像,网络
3.2 性能分析器的渲染区域
Window——Analysis——Profiler
性能分析器显示了绝大部分在渲染统计窗口中提供的信息,例如,绿线显示了批处理数目、蓝线显示了Pass数目等,同时还给出了许多其他非常有用的信息,例如,draw call数目、动态批处理/静态批处理的数目、渲染纹理的数目和内存占用等。
3.3 帧调试器
Window——Analysis——FrameDebugger
帧调试器的调试面板上显示了渲染这一帧所需要的所有的渲染事件,
渲染一帧要调用13个DrawCall
1. 清除颜色、深度和模板缓存,1
2. 渲染不透明物体,10
3. 渲染透明物体,2