QualitySettings.streamingMipmapsRenderersPerFrame
Declaration
public static int streamingMipmapsRenderersPerFrame;Описание
Число экземпляров рендерера, которые обрабатываются в каждом кадре при расчете того, какие уровни mipmap текстуры должны быть потоковыми.
Если число рендеров превышает этот предел, уровни mipmap текстур, связанных с этими дополнительными рендерами, рассчитываются в последующих кадрах.
Уменьшите это значение, чтобы уменьшить CPU затраты на вычисление оптимальных уровней mipmap. Компромисс заключается в том, что меньшее значение также снижает скорость вычисления mipmap текстур и загрузки этих желаемых mipmap.
По умолчанию первоначальное значение 512, но это можно установить в разделе Качество редактора Project Настройки, в Тексты > Потоковое вещание 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; } }
Дополнительные ресурсы: ,Texture.streamingRendererCount,.