渲染 分析器一个帮助您优化游戏的窗口。它显示了游戏在各个区域花费的时间。例如,它可以报告用于渲染、动画或游戏逻辑的时间百分比。 更多信息
参见 词汇表 显示了渲染统计信息以及有关 CPU 和 GPU 为渲染 场景一个场景包含游戏环境和菜单。将每个独特的场景文件视为一个独特的关卡。在每个场景中,您放置环境、障碍物和装饰,本质上是设计和构建游戏的各个部分。 更多信息
参见 词汇表 所做的工作的信息。您可以使用这些统计信息来衡量场景不同区域的资源强度,这对于优化非常有用。
要打开分析器窗口,请转到菜单:窗口 > 分析 > 分析器。
图表显示了应用程序渲染的批次、SetPass 调用、三角形和顶点的数量。下窗格显示了更多渲染统计信息,这些统计信息与 GameView 渲染统计信息 窗口中显示的统计信息相匹配。
渲染分析器模块的图表分为以下四个类别
图表 | 描述 |
---|---|
批次计数 | Unity 在一帧中处理的 批次 数量。 |
SetPass 调用计数 | Unity 切换用于渲染 着色器在 GPU 上运行的程序。 更多信息 参见 词汇表 通道以渲染 游戏对象Unity 场景中的基本对象,可以代表角色、道具、场景、相机、航点等等。游戏对象的功能由附加到它的组件定义。 更多信息 参见 词汇表 的次数。着色器可能包含多个着色器通道,每个通道以不同的方式渲染场景中的游戏对象。 |
三角形计数 | Unity 在一帧中处理的 三角形 数量。 |
顶点计数 | Unity 在一帧中处理的 顶点 数量。 |
单击渲染分析器模块时,窗口下半部分的详细信息窗格将显示详细的渲染统计信息。这些统计信息类似于 渲染统计信息 窗口中显示的统计信息。
在详细信息窗格的左上角,选择打开帧调试器以打开 帧调试器,它提供有关渲染帧的单个绘制调用的信息。
这些统计信息也可以通过 ProfilerRecorder API 和 分析器模块编辑器 获得,因此您可以将它们添加到自定义分析器模块中。
统计数据 | 描述 | 在发布版玩家中可用 |
---|---|---|
SetPass 调用计数 | Unity 切换用于渲染游戏对象的着色器通道的次数。着色器可能包含多个着色器通道,每个通道以不同的方式渲染场景中的游戏对象。 | 是 |
绘制调用计数 | Unity 在一帧中发出的绘制调用的总数。当 Unity 将游戏对象渲染到屏幕上时,它会发出绘制调用。此数字包括非批次绘制调用以及动态和静态批次绘制调用。 | 是 |
总批次计数 | Unity 在一帧中处理的 批次 的总数。此数字包括静态批次和动态批次。 | 是 |
三角形计数 | Unity 在一帧中处理的 三角形 的数量。 | 是 |
顶点计数 | Unity 在帧中处理的 顶点 的数量。 | 是 |
(动态批处理) | 本节包含关于 动态批处理Unity 的一个自动过程,它试图将多个网格渲染为单个网格,以优化图形性能。该技术在 CPU 上转换所有游戏对象的顶点,并将许多相似的顶点组合在一起。 更多信息 参见 词汇表 的统计信息。 |
否 |
动态批处理绘制调用计数 | Unity 组合到动态批处理中的绘制调用数量。 | 否 |
动态批次计数 | Unity 在帧中处理的动态批次数量。 | 否 |
动态批处理三角形计数 | 包含在动态批处理中的游戏对象中的三角形数量。 | 否 |
动态批处理顶点计数 | 包含在动态批处理中的游戏对象中的顶点数量。 | 否 |
动态批处理时间 | Unity 花费在创建动态批处理结构上的时间。 | 否 |
(静态批处理) | 本节包含关于 静态批处理Unity 使用的一种技术,用于将游戏对象绘制到屏幕上,该技术将静态(非移动)游戏对象组合成大型网格,并以更快的速度渲染它们。 更多信息 参见 词汇表 的统计信息。 |
否 |
静态批处理绘制调用计数 | Unity 组合到静态批处理中的绘制调用数量。 | 否 |
静态批次计数 | Unity 在一帧中处理的静态批次数量。 | 否 |
静态批处理三角形计数 | 包含在静态批处理中的游戏对象中的三角形数量。 | 否 |
静态批处理顶点计数 | 包含在静态批处理中的游戏对象中的顶点数量。 | 否 |
(实例化) | 本节包含关于 GPU 实例化 的统计信息。 | 否 |
实例化批处理绘制调用计数 | Unity 组合到实例批处理中的绘制调用数量。 | 否 |
实例化批次计数 | Unity 在一帧中处理的用于渲染 实例化 游戏对象的批次数量。 | 否 |
实例化批处理三角形计数 | 实例化游戏对象中的三角形数量。 | 否 |
实例化批处理顶点计数 | 实例化游戏对象中的顶点数量。 | 否 |
使用的纹理计数 使用的纹理字节 |
Unity 在帧中使用的 纹理渲染游戏对象、精灵或 UI 元素时使用的图像。纹理通常应用于网格的表面,以使其具有视觉细节。 更多信息 参见 词汇表 数量以及纹理使用的内存量。 |
否 |
渲染纹理计数 渲染纹理字节 |
Unity 在帧中使用的 渲染纹理 数量以及渲染纹理使用的内存量。 | 是 |
渲染纹理一种特殊的纹理类型,在运行时创建和更新。要使用它们,首先创建一个新的渲染纹理,并将其中一个相机指定为渲染到该纹理中。然后,您可以像使用常规纹理一样在材质中使用渲染纹理。 更多信息 参见 词汇表 更改计数 |
Unity 在帧中将一个或多个渲染纹理设置为渲染目标的次数。 | 是 |
使用的缓冲区计数 使用的缓冲区字节 |
GPU 缓冲区的总数及其使用的内存。这包括顶点、索引和计算缓冲区以及渲染所需的所有内部缓冲区。 | 是 |
帧中顶点缓冲区上传计数 帧中顶点缓冲区上传字节 |
CPU 在帧中上传到 GPU 的几何体数量。这表示顶点/法线/纹理坐标数据。GPU 上可能已经存在一些几何体。此统计信息仅包括 Unity 在帧中传输的几何体。 | 是 |
帧中索引缓冲区上传计数 帧中索引缓冲区上传字节 |
CPU 在帧中上传到 GPU 的几何体数量。这表示三角形索引数据。GPU 上可能已经存在一些几何体。此统计信息仅包括 Unity 在帧中传输的几何体。 | 是 |
阴影投射器计数 | 在一帧中投射阴影的游戏对象的数量。如果一个游戏对象投射多个阴影(因为多个灯光照亮了它),则它会为其投射的每个阴影都有一个条目。 | 是 |
渲染模块 分析器计数器放置在使用 ProfilerCounter API 的代码中以跟踪指标,例如游戏中生成的敌人数量。 更多信息
参见 词汇表 也可在玩家中使用。使用 ProfilerRecorder API 在玩家中访问渲染分析器模块信息。高层计数器也适用于发布版玩家。
以下示例包含一个简单的脚本,它收集“SetPass 调用计数”、“绘制调用计数”和“顶点计数”指标,并将它们显示为 TextArea。
using System.Text;
using Unity.Profiling;
using UnityEngine;
public class RenderStatsScript : MonoBehaviour
{
string statsText;
ProfilerRecorder setPassCallsRecorder;
ProfilerRecorder drawCallsRecorder;
ProfilerRecorder verticesRecorder;
void OnEnable()
{
setPassCallsRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Render, "SetPass Calls Count");
drawCallsRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Render, "Draw Calls Count");
verticesRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Render, "Vertices Count");
}
void OnDisable()
{
setPassCallsRecorder.Dispose();
drawCallsRecorder.Dispose();
verticesRecorder.Dispose();
}
void Update()
{
var sb = new StringBuilder(500);
if (setPassCallsRecorder.Valid)
sb.AppendLine($"SetPass Calls: {setPassCallsRecorder.LastValue}");
if (drawCallsRecorder.Valid)
sb.AppendLine($"Draw Calls: {drawCallsRecorder.LastValue}");
if (verticesRecorder.Valid)
sb.AppendLine($"Vertices: {verticesRecorder.LastValue}");
statsText = sb.ToString();
}
void OnGUI()
{
GUI.TextArea(new Rect(10, 30, 250, 50), statsText);
}
}
渲染分析器模块信息属于 ProfilerCategory.Render 分析器类别标识 Unity 子系统的负载数据(例如,渲染、脚本和动画类别)。Unity 对类别应用颜色编码,以便在分析器窗口中直观地区分数据类型。
参见 词汇表。
如果您想突出显示自定义模块中选定的渲染计数器,请使用 模块编辑器 配置图表和详细视图。