UnityShader入门精要——Unity中的渲染优化技术(一)

1          移动平台的特点

和PC平台相比,移动平台上的GPU架构有很大的不同。由于处理资源等条件的限制,移动设备上的GPU架构专注于尽可能使用更小的带宽和功能,也由此带来了许多和PC平台完全不同的现象。

由于芯片架构造成的不同,一些游戏往往需要针对不同的芯片发布不同的版本,以便对每个芯片进行更有针对性的优化。尤其是在Android平台上,不同设备使用的硬件,如图形芯片、屏幕分辨率等,大相径庭,这对图形优化提出了更高的挑战。相比与Android平台,iOS平台的硬件条件则相对统一。

TBDR架构基础icon-default.png?t=M5H6http://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

猜你喜欢

转载自blog.csdn.net/weixin_51327051/article/details/125350341