Unity 6.3
0 онлайн 83 гостей 3 в системе
Вход

Texture2DArray.Apply

Declaration

public void Apply(bool updateMipmaps = true, bool makeNoLongerReadable = false);

Параметры

Параметр Описание
updateMipmaps Когда значением является true, Unity пересчитывает уровни mipmap, используя уровень mipmap 0 в качестве источника. Значение по умолчанию — true.
makeNoLongerReadable Когда значением является true, Unity удаляет текстуру в памяти CPU после ее загрузки в GPU, и устанавливает isReadable на false. Значение по умолчанию — false.

Описание

Копирует изменения, сделанные в текстуре CPU в текстуру GPU.

Для большинства типов текстур Unity может хранить копию текстуры как в памяти CPU, так и в памяти GPU.

Копия в памяти CPU необязательна. Если она существует, данные этой копии можно читать и изменять более гибко, чем данные копии в памяти GPU. Однако для визуализации обновлённой текстуры необходимо с помощью Apply скопировать её из CPU в GPU.

Если задать для makeNoLongerReadable значение true, Unity удалит копию текстуры из памяти CPU после её загрузки в GPU. После этого Unity не сможет повторно загрузить текстуру. Даже если для ассета текстуры с сохранёнными на диске данными вызвать Apply, после удаления копии из CPU Unity больше не попытается загрузить данные с диска, поскольку доступные для чтения данные текстуры могли быть изменены. Это важно при использовании в проекте ограничений mipmap, уменьшающих количество загружаемых уровней mipmap (см., например, QualitySettings.globalTextureMipmapLimit). После удаления копии из CPU посредством Apply текстуры времени выполнения и доступные для чтения ассеты текстур перестают следовать настройкам качества. Загруженное разрешение текстур остаётся таким, каким оно было при загрузке в GPU на момент удаления Unity копии из CPU. Если это нежелательно, обеспечьте загрузку текстуры в полном разрешении при импорте или создании либо с помощью Texture2DArray.ignoreMipmapLimit во время выполнения.

Обычно для updateMipmaps задают false только в том случае, если уровни mipmap уже обновлены, например с помощью SetPixels.

Apply — ресурсоёмкая операция: она копирует все пиксели текстуры, даже если изменена только их часть. Поэтому перед вызовом измените как можно больше пикселей.

Дополнительные ресурсы: Texture2D.Apply