Version: 6000.3
语言: 中文
帧计时 API 计数器参考
GPU 使用情况分析器模块

渲染性能分析器模块参考

效果图分析器帮助您优化游戏的窗口。它显示了在游戏的各个领域花费了多少时间。例如,它可以报告渲染、动画制作或游戏逻辑所花费的时间百分比。更多信息
请参阅术语表
显示渲染统计信息以及有关 CPU 和 GPU 为渲染场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
.您可以使用这些统计数据来衡量场景中不同区域的资源强度,这对于优化很有用。

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

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

渲染分析器模块
渲染分析器模块

渲染分析器模块的图表分为以下几类:

图表 描述
批次计数 Unity 在一帧内处理的批次数。
SetPass 调用计数 Unity 切换的次数着色器在 GPU 上运行的程序。更多信息
请参阅术语表
传递它用于渲染游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
在一帧中。着色器可能包含多个着色器通道,每个通道以不同的方式呈现场景中的游戏对象。
三角形计数 Unity 在帧内处理的三角形数。
顶点计数(Vertices Count) Unity 在一帧内处理的顶点数。

模块详细信息窗格

单击 渲染分析器(Rendering Profiler) 模块时,窗口下半部分的详细信息窗格会显示详细的渲染统计信息。这些统计信息类似于“渲染统计信息”窗口中显示的统计信息。

在详细信息窗格的左上角,选择 打开帧调试器(Open Frame Debugger) 以打开帧调试器,其中提供了有关渲染帧的各个绘制调用的信息。

这些统计数据也可通过 ProfilerRecorder APIProfiler 模块编辑器获得,以便你可以将它们添加到自定义 Profiler 模块中。

统计 描述 可在发布播放器中访问
SetPass 调用 Unity 在帧期间切换用于渲染游戏对象的着色器通道的次数。着色器可能包含多个着色器通道,每个通道以不同的方式呈现场景中的游戏对象。 是的
绘制调用 Unity 在一帧内发出的绘制调用总数。Unity 在将游戏对象渲染到屏幕时发出绘制调用。此数字包括非批处理绘制调用以及动态和静态批量绘制调用。 是的
批次 Unity 在一帧内处理的批处理总数。此数字包括静态批次和动态批次。 是的
三角形 Unity 在帧内处理的三角形数。 是的
顶点 Unity 在帧期间处理的顶点数。 是的
(动态批处理) 本节包含有关动态批处理一种自动 Unity 过程,它尝试将多个网格渲染为单个网格,以优化图形性能。该技术转换 CPU 上的所有游戏对象顶点,并将许多相似的顶点组合在一起。更多信息
请参阅术语表
.
批量绘制调用 Unity 合并为动态批处理的绘制调用数。
批次 Unity 在帧期间处理的动态批次数。
三角形 动态批次中包含的游戏对象中的三角形数。
顶点 动态批次中包含的游戏对象中的顶点数。
时间 Unity 创建动态批处理结构所花费的时间。
(静态批处理) 本节包含有关静态批处理Unity 用于在屏幕上绘制游戏对象的一种技术,用于将静态(非移动)游戏对象组合成大网格,并以更快的方式呈现它们。更多信息
请参阅术语表
.
批量绘制调用 Unity 合并为静态批处理的绘制调用数。
批次 Unity 在一帧内处理的静态批次数。
三角形 静态批次中包含的游戏对象中的三角形数。
顶点 静态批次中包含的游戏对象中的顶点数。
(实例化) 本部分包含有关GPU实例化的统计数据。
批量绘制调用 Unity 合并到实例批处理中的绘制调用数。
批次 Unity 在帧期间为渲染实例化游戏对象而处理的批次数。
三角形 实例化游戏对象中的三角形数。
顶点 实例化游戏对象中的顶点数。
使用的纹理 的数量纹理渲染游戏对象、精灵或 UI 元素时使用的图像。纹理通常应用于网格表面,以赋予其视觉细节。更多信息
请参阅术语表
帧期间使用的 Unity 和纹理使用的内存量。
渲染纹理(Render Textures)一种特殊类型的纹理,在运行时创建和更新。要使用它们,请先创建一个新的渲染纹理,并指定要渲染到其中的摄像机之一。然后,你可以在材质中使用渲染纹理,就像使用常规纹理一样。更多信息
请参阅术语表
Unity 在帧期间使用的 RenderTexture 数量以及 RenderTextures 使用的内存量。 是的
渲染纹理更改(Render Textures Changes) Unity 在帧期间将一个或多个 RenderTexture 设置为呈现目标的次数。 是的
使用的缓冲区 它们使用的 GPU 缓冲区和内存的总数。这包括顶点、索引和计算缓冲区以及呈现所需的所有内部缓冲区。 是的
帧内顶点缓冲区上传(Vertex Buffer Upload In Frame) CPU在帧中上传到GPU的几何体量。这表示顶点/法线/纹理坐标数据。GPU 上可能已经有一些几何体。此统计数据仅包括 Unity 在帧中传输的几何体。 是的
索引缓冲区上传帧数 CPU在帧中上传到GPU的几何体量。这表示三角形索引数据。GPU 上可能已经有一些几何体。此统计数据仅包括 Unity 在帧中传输的几何体。 是的
暗影施法者计数 在帧中投射阴影的游戏对象数。如果游戏对象投射多个阴影(因为多个灯光照亮它),则它每个投射的阴影都有一个条目。 是的

播放器的可用性

渲染模块Profiler 计数器使用 ProfilerCounter API 放置在代码中,以跟踪指标,例如游戏中生成的敌人数量。更多信息
请参阅术语表
在播放器中也可用。使用 ProfilerRecorder API 访问播放器中的渲染分析器模块信息。高级计数器在发布播放器中也可用。

以下示例包含一个简单的脚本,该脚本收集SetPass Calls Count,Draw Calls CountVertices Count指标并将其显示为 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 对类别应用颜色编码,以直观地区分 Profiler 窗口中的数据类型。
请参阅术语表
.

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

其他资源

帧计时 API 计数器参考
GPU 使用情况分析器模块