文章目录
- 前言
- 一、Stats
- 二、我们主要看渲染状态分析
- 1、FPS
- 2、其他状态信息
- 3、DrawCall
- 4、Batch
- 5、Setpass Call
- 6、在Unity中弱化了DrawCall的概念,我们主要看 Batch 和 Setpass Call
- 三、使用 Batching(合批) 降低 Batch (渲染批次)
- 1、Dynamic Batching 动态合批
- 2、Static Batching 静态合批
- 3、GPU Instancing CPU实例化
前言
Starts 是Unity用于查看渲染状态的小工具
一、Stats
在Unity中,用Stats工具来进行渲染状态分析
在Game窗口->Stats查看
二、我们主要看渲染状态分析
1、FPS
帧率(Frames Per Second),即一秒内渲染多少帧。
可以看出我们在 PC 端运行,渲染帧率达到了 500 多帧。
但是,实际打包到手机端,渲染帧率就没有这么高了,所有我们还是得主要看实际打包后的结果
- 1s = 1000ms
- ms = 1000 / 目标帧率
- 1s 有 30帧的话,1ms = 33.3帧
- 1s 有 30帧的话,1ms = 16.6帧
2、其他状态信息
- 为什么我们的空场景中,会有 1.7k个三角形面 和 5k 个顶点
因为我们的天空盒是一个球形,球的面数和顶点较多
- 我们使用单一颜色 替换 天空盒,就可以看见 三角面 和 顶点数 减少
3、DrawCall
CPU每次调用图形API命令GPU进行渲染的操作
4、Batch
把需要渲染的 数据加载到显存并设置好渲染状态,然后CPU调用GPU渲染的过程为一个Batch
5、Setpass Call
每次GPU切换一个Pass前,都会产生一次SetPassCall
6、在Unity中弱化了DrawCall的概念,我们主要看 Batch 和 Setpass Call
三、使用 Batching(合批) 降低 Batch (渲染批次)
合批有哪些方法: