Unity 6.3
0 онлайн 134 гостей 3 в системе
Вход
Материалы и шейдеры Шаг 188 из 442

Переопределение уровня mipmap текстуры

Переопределите уровень mipmap, чтобы повлиять на то, какой уровень Unity загружается, вместо того, чтобы полагаться только на автоматическую потоковую передачу mipmap. Вы можете сделать это любым из следующих способов:

  • Свойство Приоритет в окне Настройки импорта текстуры текстуры.
  • API Texture2D.requestedMipmapLevel.

Использование свойства Priority

Выполните следующие действия:

  1. Выберите текстуру в окне Project.
  2. В окне Настройки импорта текстуры в разделе Дополнительно установите значение Приоритет между –128 и 127.

Когда Unity необходимо уменьшить уровни mipmap, чтобы достичь предела памяти, он рассматривает текстуры в порядке приоритета от низкого к высокому, пока не достигнет предела. Это означает, что текстуры с более высоким значением приоритета с большей вероятностью сохранят свои уровни mipmap с более высоким разрешением.

Unity удаляет уровень mipmap текстуры с низким приоритетом каждый раз, когда рассматриваются текстуры с таким же или более высоким приоритетом. Например, если вы установили одну текстуру Приоритет 1 и другой текстуры к Приоритет из 5, Unity может удалить четыре уровня mipmap, прежде чем рассматривать вторую текстуру.

Вы также можете использовать следующий APIs для установки значения Приоритет:

Используйте API

Texture2D.requestedMipmapLevel API устанавливает определенный уровень mipmap, переопределяя уровень, который будет рассчитан потоком mipmap. Это также необходимо для объектов Unity не может рассчитать уровень для. Используйте следующий APIs:

Для базового примера, прикрепляющего текстуру к фиксированному уровню mipmap, см. Texture2D.requestedMipmapLevel.

Чтобы вручную рассчитать уровень из положения камеры, используйте Mesh.GetUVDistributionMetric API для оценки UV плотности сетки. Например код, см. Mesh.GetUVDistributionMetric.

Уровень, который вы просите, все еще зависит от вашего настройки качества текстуры. Предел mipmap может ограничить разрешение, так что запрашиваемый уровень 0 может не загрузить текстуру в полном разрешении. Unity может также снизить уровень загрузки, чтобы оставаться в пределах бюджет памяти, ограничиваемые Максимальное снижение уровня значение и в порядке текстуры потока Приоритет.

Переопределение уровней mipmap на всех текстурах

Используйте Texture.streamingTextureForceLoadAll для загрузки всех уровней mipmap для всех текстур.

Дополнительные ресурсы