计算应流式传输哪些纹理mipmap级别时,每帧处理的渲染器实例数。
如果渲染器数量超过此限制,则与这些额外渲染器关联的纹理的mipmap级别将在后续帧中计算。
降低此值可降低计算最佳mipmap级别的CPU成本。权衡是,较低的值还会降低纹理mipmap计算的速度以及加载这些所需mipmap的速度。
默认情况下,初始值为 512,但可以在编辑器**项目设置**窗口的**质量**部分的**纹理** > **Mipmap 流式传输**下进行设置。
注意:不要在运行时过于频繁地更改streamingMipmapsRenderersPerFrame
。您应该在更改之间留出足够的时间以处理所有渲染器。更频繁地更新此值会导致未使用的mips保持加载状态。以下示例说明了如何计算更改之间延迟的帧数
using System.Collections; using UnityEngine; public class Example : MonoBehaviour { int nextUpdateAllowed = 0; int _renderersPerFrame;
// Increase this value when frame rate is high, lower when frame rate drops) public int RenderersPerFrame { get { return QualitySettings.streamingMipmapsRenderersPerFrame; } set { _renderersPerFrame = value; StopCoroutine("UpdateRenderCount"); StartCoroutine("UpdateRenderCount"); } }
IEnumerator UpdateRenderCount() { while (Time.frameCount < nextUpdateAllowed) yield return null;
QualitySettings.streamingMipmapsRenderersPerFrame = _renderersPerFrame; int frameDelay = (int)(Texture.streamingRendererCount + (ulong)(_renderersPerFrame - 1)) / _renderersPerFrame; nextUpdateAllowed = Time.frameCount + frameDelay;
yield return null; } }