Virtual Texturing Profiler 显示有关应用程序中 Streaming Virtual Texturing 的统计信息。如果场景中有大量高分辨率纹理,虚拟纹理会减少应用程序使用的 GPU 内存量以及应用程序中纹理加载的时间。
要打开性能分析器 (Profiler) 窗口,转到菜单:窗口 (Window) > 分析 (Analysis) > 性能分析器 (Profiler)。
注意:要使用虚拟纹理性能分析器模块,必须在项目的播放器设置 (Player Settings) 中启用虚拟纹理 (Virtual Texturing)(编辑 (Edit) > 项目设置 (Project Settings) > 播放器 (Player) > 其他设置 (Other Settings))。
该图表显示有关应用程序运行时屏幕上的纹理图块的信息,以及纹理使用的内存量。当选择虚拟纹理模块时,Profiler 窗口的下方窗格会显示统计信息,例如虚拟纹理使用的缓存大小。
虚拟纹理性能分析器模块的图表分为四个类别:
| 图表 | 描述 |
|---|---|
| Required Tiles | 屏幕上可见的纹理图块的数量。这些是着色器尝试采样以渲染所选帧的图块。 |
| Max Cache Mip Bias | 自动 Mipmap 偏差应用于具有相同纹理格式的所有纹理。如果此值不为零,则缓存无法容纳所有可见的该格式的图块。Mipmap 偏差越高,纹理质量越低。 |
| Max Cache Demand | 在所选帧中缓存所有 GPU 缓存的最高缓存需求。 |
| Missing Streaming Tiles | 屏幕上可见但不在视频内存中的图块数量。应用程序会尽快从磁盘流式传输或从主内存复制这些图块。 |
| Missing Disk Data | 您的应用程序需要从磁盘读取以满足所选帧的剩余数据(以字节为单位)。 |
当单击虚拟纹理性能分析器 (Virtual Texturing Profiler) 模块时,窗口下半部分的详细信息面板会进一步显示详细的统计信息。这些统计信息也可通过 ProfilerRecorder API 及 Profiler Module Editor 获得,因此您可以将它们添加到自定义性能分析器模块中。
详细信息面板中的统计信息如下:
| 统计信息 | 描述 |
|---|---|
| 系统统计信息 | 详细信息面板的此部分显示有关应用程序的纹理图块及其在性能分析器捕获期间使用的资源的信息。这些统计信息可用于播放器构建以及 Unity 编辑器 (Editor) 中的播放 (Play) 模式性能分析。 |
| Tiles required this frame | 屏幕上可见的纹理图块的数量。这些是着色器尝试采样以渲染所选帧的图块。如果所有这些图块都在 GPU 缓存中,Unity 将尽可能针对缓存大小以最高的纹理质量渲染帧。 除非场景被冻结,否则某些图块暂时不会加载到 GPU 内存中。在这种情况下,虚拟纹理样本会使用内存中 Mipmap 较高的较低质量样本,直到较高质量样本进入内存中。 缓存 Mipmap 偏差会影响所需图块的数量。如果所有缓存的 Mipmap 偏差不为零,则所需的图块数量低于最佳纹理质量所需的数量。 |
| Max Cache Mip Bias | 具有最高 Mipmap 偏差的 GPU 缓存的 Mipmap 偏差。如果不为零,则至少一个缓存不够大,无法容纳所有纹理图块,因此不能以最佳纹理质量渲染所选帧。 |
| Max Cache Demand | 所有 GPU 中缓存所选帧的最高缓存需求,以 GPU 的百分比表示。具有最高需求的 GPU 缓存可能需要更大,才能避免此缓存的 Mipmap 偏差。 如果 Max Cache Demand 统计信息的百分比较低,则缓存对于渲染分辨率和内容而言可能太大。这样做的主要缺点是应用程序使用的 GPU 内存超过其需要,但如果应用程序不受内存限制,这不是问题。 |
| Total CPU Cache Size | Unity 从磁盘加载纹理图块后分配给存储的纹理图块的内存量。 |
| Total GPU Cache Size | 虚拟纹理模块在所选帧中分配的所有 GPU 缓存的大小。Unity 仅在渲染使用该纹理格式的纹理的材质时才创建 GPU 缓存。 |
| Atlases | 虚拟纹理空间或图集的数量(最多 64 个)。Unity 将通过虚拟纹理流式传输的纹理作为图集发送到大型虚拟纹理空间中。此过程是自动和透明的。 |
| 播放器构建统计信息 | 详细信息面板的此部分显示有关应用程序的纹理图块的信息,这些信息仅在对应用程序的构建进行性能分析时才可用。 |
| Missing Disk Data | 应用程序需要从磁盘读取以满足所选帧的剩余数据(以字节为单位)。队列中可能有更多的磁盘读取请求是来自不再可见的前一帧中的请求。因此,这是在没有新图块可见的情况下应用程序从磁盘读取的最小数据量。应用程序读取的实际数据量可能更大。 |
| Missing Streaming Tiles | 在屏幕上可见但尚未加载到内存中的图块数量。这些图块会尽快从磁盘流式传输出来。例如,如果摄像机移动,这个数字可能会更高。如果场景和摄像机冻结并且看不到新图块,则此统计信息会降为零。 |
| Read From Disk | Unity 完成所选帧的磁盘读取操作的字节数。 |
| 每个缓存的统计信息 | 显示有关缓存的统计信息。仅当对应用程序的构建进行性能分析时可用。 |
| Cache Format | 应用程序中的纹理使用的图形格式。 |
| Demand | 每种图形格式使用的缓存需求量。注意:此统计信息在自定义性能分析器中不可用 |
| Bias | 每种图形格式使用的 Mipmap 偏差缓存量。注意:此统计信息在自定义性能分析器中不可用 |