版本:Unity 6 (6000.0)
语言:英语
帧时间管理器故障排除
GPU 使用分析器模块

渲染分析器模块

渲染 分析器一个帮助您优化游戏的窗口。它显示了游戏在各个区域花费的时间。例如,它可以报告用于渲染、动画或游戏逻辑的时间百分比。 更多信息
参见 词汇表
显示了渲染统计信息以及有关 CPU 和 GPU 为渲染 场景一个场景包含游戏环境和菜单。将每个独特的场景文件视为一个独特的关卡。在每个场景中,您放置环境、障碍物和装饰,本质上是设计和构建游戏的各个部分。 更多信息
参见 词汇表
所做的工作的信息。您可以使用这些统计信息来衡量场景不同区域的资源强度,这对于优化非常有用。

要打开分析器窗口,请转到菜单:窗口 > 分析 > 分析器

图表显示了应用程序渲染的批次、SetPass 调用、三角形和顶点的数量。下窗格显示了更多渲染统计信息,这些统计信息与 GameView 渲染统计信息 窗口中显示的统计信息相匹配。

The Rendering Profiler module
渲染分析器模块

渲染分析器模块的图表分为以下四个类别

图表 描述
批次计数 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 对类别应用颜色编码,以便在分析器窗口中直观地区分数据类型。
参见 词汇表

如果您想突出显示自定义模块中选定的渲染计数器,请使用 模块编辑器 配置图表和详细视图。

其他资源

帧时间管理器故障排除
GPU 使用分析器模块