包含此页的版本:
不含此页的版本:
本页包含一些用于优化应用程序中渲染性能的简单指南。
在进行任何更改之前,必须分析应用程序以确定问题的原因。如果您在了解性能问题的原因之前尝试解决其原因,则可能会浪费时间或使问题变得更糟。此外,CPU 或 GPU 上可能会出现与渲染相关的性能问题。解决这些问题的策略大不相同,因此在采取任何行动之前了解问题出在哪里非常重要。
Unity Learn 网站上的以下文章全面介绍了图形性能,并包含有关识别和修复问题的信息:修复性能问题。如果您还不熟悉此主题,请在遵循本页上的任何建议之前阅读本文。
通常,CPU 渲染时间的最大贡献者是向 GPU 发送渲染命令的成本。渲染命令包括绘制调用(绘制几何体的命令)以及在绘制几何体之前更改 GPU 设置的命令。如果是这种情况,请考虑以下选项:
其中许多方法还将减少 GPU 上所需的工作;例如,减少 Unity 在一帧中渲染的对象总数将减少 CPU 和 GPU 的工作负载。
GPU 可能无法及时完成其工作以渲染帧的主要原因有三个。
如果应用程序受填充率限制,则 GPU 会尝试绘制更多内容像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
请参阅术语表每帧超出其处理能力。如果是这种情况,请考虑以下选项:
如果应用程序受到内存带宽的限制,则 GPU 会尝试向其专用内存读取和写入比它在帧中处理的更多的数据。这通常意味着 或纹理太多,或者纹理太大。如果是这种情况,请考虑以下选项:
如果应用程序受到顶点处理的限制,这意味着 GPU 正在尝试处理的顶点超过其在帧中可以处理的顶点。如果是这种情况,请考虑以下选项:
有时,降低渲染帧速率可能对应用程序有利。这不会降低渲染单个帧的 CPU 或 GPU 成本,但会降低 Unity 执行此作的频率,而不会影响其他作(例如脚本执行)的频率。
您可以降低部分应用程序或整个应用程序的渲染帧速率。降低渲染帧速率以防止不必要的功耗,延长电池寿命,并防止设备温度上升到 CPU 频率可能受到限制的程度。这在手持设备上特别有用。
如果分析显示呈现消耗了应用程序的很大一部分资源,请考虑应用程序的哪些部分可能会从中受益。常见用例包括菜单或暂停屏幕、游戏等待输入的回合制游戏,以及内容大部分是静态的应用程序,例如汽车界面。
为防止输入延迟,您可以在输入持续时间内暂时提高渲染帧速率,以便它仍然感觉响应。
若要调整呈现帧速率,请使用 OnDemandRendering API。该 API 与 Adaptive Performance 包配合得特别好。
注意: VR虚拟现实 更多信息
见术语表应用程序不支持按需渲染。不渲染每一帧都会导致视觉效果与头部运动不同步,并可能增加晕车的风险。