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

GPU Основы формата текстуры

Unity Editor может импортировать исходные текстурные файлы в нескольких общих форматах, таких как JPEG или PNG. Однако GPUs не использует эти форматы во время выполнения; вместо этого они используют различные специализированные форматы, которые оптимизированы для использования памяти и скорости операций выборки.

Вы можете настроить формат сжатия текстуры для текстурного ассета в его настройках импорта. Когда вы добавляете текстурный ассет в свой проект, Unity Editor автоматически выбирает соответствующий формат сжатия для каждой цели сборки; однако большинство платформ поддерживают несколько форматов сжатия текстуры.

Формат сжатия текстуры может влиять на время загрузки, время кадров GPU, использование памяти, визуальное качество, размер сборки и время сжатия; поэтому важно понять эту тему, прежде чем изменять эту настройку.

На этой странице содержится следующая информация:

Общие сведения о параметрах импорта текстур см. в Настройки импорта текстур. Информацию о рекомендуемых, стандартных и поддерживаемых форматах сжатия текстур для каждой платформы см. в Рекомендуемые, стандартные и поддерживаемые форматы сжатия текстур по платформам.

Обзор сжатия текстуры

Бит на пиксель (bpp) — это количество памяти, необходимое для одного пикселя текстуры. Тексты с более низким значением bpp имеют меньший размер на диске и в памяти. Более низкое значение bpp также означает, что GPU использует меньше пропускной способности памяти для чтения пикселей текстуры. GPU пропускная способность памяти часто может быть узким местом в частоте кадров, и поэтому сжатие текстуры помогает избежать этого.

Чем выше качество изображения текстуры, тем больше бит на пиксель, что, в свою очередь, приводит к увеличению размера сборки, времени загрузки и использования памяти при выполнении. Все форматы сжатия текстуры в некоторой степени являются потерями. Несжатые текстуры обеспечивают наивысшее качество, но они также имеют наивысший бит на пиксель. Различные форматы сжатия текстуры предлагают различные компромиссы.

В целом, для наилучшей производительности во время выполнения и размера на диске, для большинства ваших текстурных ассетов, вы должны выбрать формат сжатия текстуры, который поддерживается вашим целевым устройством, и имеет наименьшее количество бит на пиксель для желаемого качества изображения.

Когда вы используете текстуру для определенной цели, вы можете изменить ее индивидуальные настройки. Например, если вы используете текстуру с только одним каналом в качестве маски, вы можете выбрать формат BC4, чтобы уменьшить размер файла, но сохранить качество. Если вы используете некоторые текстуры для пиксельно-совершенного UI, вы можете выбрать не сжимать их.

Выберите формат, поддерживаемый целевыми платформами и устройствами. Когда Unity загружает текстуру в формате сжатия, который не поддерживается устройством, он декомпрессирует текстуру в стандартный несжатый формат для этой платформы и хранит несжатую копию в памяти вместе с оригинальной сжатой текстурой. Это увеличивает время загрузки текстуры и использует дополнительную память. Когда Unity загружает текстуру в формате сжатия, который поддерживает устройство, GPU может использовать данные без необходимости преобразования.

Сжатие сжатия

Crunch — это формат сжатия, который работает в дополнение к сжатию DXT или ETC, обеспечивая дополнительное сжатие с переменным битрейтом. Когда Unity загружает текстуру, сжатую с помощью Crunch, она декомпрессирует текстуру в DXT или ETC на CPU, а затем загружает сжатые текстуры DXT или ETC на GPU.

Сжатие Crunch помогает текстурам использовать минимальное количество дискового пространства, но не влияет на использование памяти во время выполнения. Сжатие текстур Crunch может занять много времени, но декомпрессия во время выполнения достаточно быстра. Вы можете настроить степень потерь при сжатии Crunch, чтобы достичь баланса между размером файла и качеством.

Если вы особенно обеспокоены размером вашей сборки и Crunch поддерживается на вашей целевой платформе, рассмотрите возможность добавления сжатия Crunch.

Применение форматов сжатия текстуры к текстурным ассетам

Информацию о параметрах импорта текстур и настройке переопределений для конкретных платформ см. в Настройки импорта текстур.