Shader学习的基础知识( 三十二)渲染优化概括

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ww1351646544/article/details/88629853

最好的优化即是不要优化,从一开始就应该把优化当成是游戏设计中的一部分。

移动平台特点

和PC相比,移动平台上的GPU结构有很大的不同,资源非常有限,因为移动设备上的GPU架构更专注于更小的带宽。由于这些不同,一些游戏往往需要针对不同的芯片发布不同的版本。

影响性的因素

影响渲染效率的,主要有两个大课题CPU和GPU。GPU主要负责帧率,而GPU主要负责分辨率。
据此,造成瓶颈的主要有几个方面:
CPU:

  • 过多的Draw call
  • 复杂的脚本或物理模拟

GPU:

  • 过多顶点
  • 过多逐顶点计算
  • 过多片元(可能是分辨率或是overdraw重绘造成的)
  • 过多的逐片元计算

带宽:

  • 使用过大纹理
  • 分辨率更高的帧缓存

对于CPU来说主要是是每一帧里的Draw call的数目,因为每次CPU在通知GPU渲染之前都需要把数据(位置、法线、颜色等…)准备好,再调用一系列API让GPU渲染,如果过多,则会造成CPU瓶颈。
而对于GPU它负责整个流水线,它会做一系列工作最终把数据显示在屏幕上。因此主要和顶点数量、屏幕分辨率、显存有关。

渲染分析工具

统计空间
在Game视窗的右上方的Stats打开它。
在这里插入图片描述

信息名称 描述
每帧的时间和FPS 在Graphic的右侧显示,处理一帧所需的时间和FPS
Batches 一帧中批处理的数目
Saved by batching 合并处理数目,表明批处理节省了多少drawcall
Tris和Verts 要绘制三角面片数量和顶点数目
Screen 屏幕大小与点用的内存大小
SetPass 使用Pass数量
Visible Skinned Meshes 渲染的网格数目
Animations 播放的动画数目

性能分析器
通过Window>>Profiler打开。
在这里插入图片描述
绿线是批处理数量,蓝色是Pass数量,还有别的信息…
因为Unity在背景要进行很多工作,所以会花费比预期更多的draw call。

帧调试器
Window>>FrameDebugger可以清楚地看到每个一个Draw call的工作结果。

其他性能分析工具
Andriod:高通的Adreno分析工具,英伟达的NVPerfHUD工具
IOS:PowerVRAM的PVRUniSco shader,Xcode中的OpenGL ES Driver Instruments

猜你喜欢

转载自blog.csdn.net/ww1351646544/article/details/88629853