Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Рекомендуемые, стандартные и поддерживаемые форматы сжатия текстур в зависимости от платформы

Эта страница содержит следующую информацию:

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

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

Терминология

На этой странице используется следующая терминология:

  • Бит на пиксельНаименьшая единица измерения компьютерного изображения. Размер пикселя зависит от разрешения вашего экрана. Пиксельное освещение рассчитывается для каждого пикселя экрана. Подробнее
    См. в Словарь
    (bpp)
    требуемый объем памяти. для одного пикселя текстуры. Текстуры с более низким значением bpp имеют меньший размер на диске и в памяти. Более низкое значение bpp также означает, что графический процессор может хранить в кэше больше пикселей, что приводит к более быстрому доступу к текстурам.
  • LDR (низкий динамический диапазон) относится к наиболее типичным изображениям, в которых цвета концептуально находятся в диапазоне от 0,0 (черный) до 1,0 (белый). Большинство графических файлов (таких как PNG и JPG) имеют низкий динамический диапазон.
  • HDRширокий динамический диапазон
    См. в Словарь
    (High Dynamic Range) относится к специальным форматам изображений и текстур, в которых цвета могут иметь более широкий диапазон, чем от 0 до 1. Форматы файлов изображений, такие как .exr или .hdr, часто используются для данных изображений HDR. Во время выполнения и на графическом процессоре существует несколько форматов HDR, в зависимости от точности, диапазона и использования памяти.
  • RGB – это цветовая модель, в которой красный, зеленый и синий цвета комбинируются для воспроизведения массива цветов.
  • RGBA — это версия RGB с альфа-каналом, который поддерживает смешивание и изменение прозрачности.
  • Переменная скорость передачи данных (VBR) означает, что количество битов на пиксель не является фиксированным значением и вместо этого зависит от фактического содержимого. VBR применяется только к Crunch сжатию и только к размеру текстуры на диске. Размер в памяти такой же, как и при использовании базового формата текстуры (например, RGB Compressed DXT1 для RGB Crunched DXT1).

Рекомендуемые форматы текстур в зависимости от платформы

Рабочий стол

Для устройств с графическими процессорами класса DirectX 11 или выше, где гарантированно доступна поддержка форматов BC7 и BC6H, рекомендуемый выбор форматов сжатия: Текстуры RGB — DXT1, четыре бита на пиксель. Текстуры RGBA — BC7 (более высокое качество, более медленное сжатие) или DXT5 (более быстрое сжатие), обе по 8 бит/пиксель. Текстуры HDR — BC6H, восемь бит/пиксель. Если вам необходимо поддерживать графические процессоры класса DirectX 10 на ПК (графические процессоры NVIDIA до 2010 г., AMD до 2009 г., Intel до 2012 г.), предпочтительнее использовать DXT5 вместо BC7, поскольку эти графические процессоры не поддерживают ни BC7, ни BC6H.

Подробную информацию обо всех поддерживаемых форматах см. в справочной таблице поддерживаемых форматов текстур.

iOS и tvOS

Для устройств Apple, использующих процессор A8 (2014 г.) или более поздней версии, ATSC является рекомендуемым форматом текстуры для текстур RGB и RGBA. Этот формат позволяет вам выбирать между качеством и размером текстуры на детальном уровне: от 8 бит/пиксель (размер блока 4x4) до 0,89 бит/пиксель (размер блока 12x12). Если требуется поддержка старых устройств или вам нужно дополнительное сжатие Crunch, устройства Apple поддерживают форматы ETC/ETC2, начиная с чипа A7 (2013 г.). Для еще более старых устройств можно использовать формат PVRTC. На iOSмобильной операционной системе Apple. Подробнее
См. в Словарь
вы можете настроить формат текстуры по умолчанию в Настройки игрокаНастройки, которые позволяют вам установить различные параметры для конкретного игрока для окончательной игры, созданной Unity. Подробнее
См. в Словарь
. PVRTC обеспечивает максимально возможную совместимость. ASTC предпочтительнее, но не поддерживается на устройствах A7 (самых первых устройствах с поддержкой Metal) и будет распакован во время выполнения.

Подробную информацию обо всех поддерживаемых форматах см. в справочной таблице поддерживаемых форматов текстур.

Андроид

Поддержка сжатия текстур на Android сложна, и вам может потребоваться создать несколько версий приложения с разными дочерними целями.

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

Для текстур LDR RGB и RGBA большинство современных графических процессоров Android поддерживают формат сжатия ASTC, в том числе:
Графические процессоры Qualcomm, начиная с Adreno 4xx / Snapdragon 415 (2015 г.)
Графические процессоры ARM начиная с Mali T624 (2012 г.)
Графические процессоры NVIDIA начиная с Tegra K1 (2014 г.)
Графические процессоры PowerVR начиная с GX6250 (2014 г.)
Если вам нужна поддержка старых устройств или вам нужно дополнительное сжатие Crunch, то все графические процессоры, работающие под управлением Vulkan, Metal или OpenGL ES 3.0, поддерживают формат ETC2. Результирующее качество изображения довольно высокое, и оно поддерживает данные текстуры от одного до четырех компонентов. Устройства OpenGL ES 2 не поддерживают формат ETC2, поэтому Unity распаковывает текстуру во время выполнения в формат, указанный откат ETC2. Для еще более старых устройств обычно доступен только формат ETC. Недостаток в том, что нет прямой поддержки альфа-канала. Для спрайтовдвухмерных графических объектов. Если вы привыкли работать в 3D, спрайты — это, по сути, просто стандартные текстуры, но существуют специальные приемы комбинирования текстур спрайтов и управления ими для повышения эффективности и удобства во время разработки. Подробнее
См. в Словарь
, Unity предлагает возможность использовать ETC1 сжатие путем разделения текстуры на две текстуры ETC1: одну для RGB, другую для альфа-канала. Чтобы включить это, включите специфичный для Android параметр Разделить альфа-канал для текстуры при импорте Атлас спрайтовТекстура, состоящая из нескольких текстур меньшего размера. Также называется атласом текстуры, спрайтом изображения, листом спрайта или упакованной текстурой. Подробнее
См. в Словарь
. Спрайт шейдерПрограмма, работающая на графическом процессоре. Подробнее
См. в разделе Словарь
образцы обеих текстур и их объединение в окончательный результат. Для текстур HDR ASTC HDR — единственный сжатый формат, доступный на устройствах Android. ASTC HDR требует поддержки Vulkan или GL_KHR_texture_compression_astc_hdr. ASTC — самый гибкий формат.

Для устройств, не поддерживающих ASTC HDR, все устройства с Vulkan, Metal или OpenGL ES 3.0 поддерживают RGB9e5, который подходит для текстур без альфа-канала. Если требуется альфа-канал или даже более широкая поддержка, используйте RGBA Half. Это требует в два раза больше памяти, чем RGB9e5.

Подробную информацию обо всех поддерживаемых форматах см. в справочной таблице поддерживаемых форматов текстур.

Форматы текстур по умолчанию в зависимости от платформы

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

Платформа Цветовая модель Нет Нормальное качество (по умолчанию) Высокое качество Низкое качество (более высокая производительность)
Windows, Linux, macOS RGB RGB 24 bit RGB Compressed DXT1 RGB(A) Compressed BC7 RGB Compressed DXT1
RGBA RGBA 32 bit RGBA Compressed DXT5 RGB(A) Compressed BC7 RGBA Compressed DXT5
HDR RGBA Half RGB Compressed BC6H RGB Compressed BC6H RGB Compressed BC6H
WebGLAPI JavaScript, который отображает 2D- и 3D-графику в веб-браузере. Опция сборки Unity WebGL позволяет Unity публиковать контент в виде программ JavaScript, которые используют технологии HTML5 и API рендеринга WebGL для запуска контента Unity в веб-браузере. More info
See in Словарь
RGB RGB 24 bit RGB Compressed DXT1 RGB Compressed DXT1 RGB Compressed DXT1
RGBA RGBA 32 bit RGBA Compressed DXT5 RGBA Compressed DXT5 RGBA Compressed DXT5
Android (только если в настройках сборки включен параметр Не переопределять) RGB RGB 24 bit RGB Compressed ETC RGB Compressed ETC RGB Compressed ETC
RGBA RGBA 32 bit RGBA Compressed ETC2 RGBA Compressed ETC2 RGBA Compressed ETC2
iOS RGB RGB 24 bit RGB Compressed PVRTC 4 bits RGB Compressed PVRTC 4 bits RGB Compressed PVRTC 2 bits
RGBA RGBA 32 bit RGBA Compressed PVRTC 4 bits RGBA Compressed PVRTC 4 bits RGBA Compressed PVRTC 2 bits
tvOS RGB RGB 24 bit RGB Compressed ASTC 6x6 block RGB Compressed ASTC 4x4 block RGB Compressed ASTC 8x8 block
RGBA RGBA 32 bit RGBA Compressed ASTC 6x6 block RGBA Compressed ASTC 4x4 block RGBA Compressed ASTC 8x8 block
Default RGBA RGBA 32 bit RGBA 16 bit RGBA 16 bit RGBA 16 bit

Поддерживаемые форматы сжатия текстур в зависимости от платформы

В таблице ниже показаны все форматы сжатия, доступные в Unity, и поддерживаемые платформы.

Формат сжатия текстур Описание Каналы Качество Бит на пиксель Размер текстуры 1024x1024 в МБ Windows Mac Linux Android iOS & tvOS WebGL
RGB(A) Compressed BC7 Compressed RGB or RGBA RGB or RGBA High 8 1 да (1) да (1) да нет нет нет
RGBA Compressed DXT5 Compressed RGBA (also known as BC3) RGBA Medium 8 1 да да да no (3) нет partial (2)
RGBA Crunched DXT5 Сжатый RGBA с дополнительным сжатием Crunch на диске RGBA Low to medium Variable Variable да да да no (3) нет partial (2)
RGBA 64 bit Несжатый RGBA, очень высокая точность RGBA Very high 64 8 да да да partial (6) да нет
RGBA 32 bit Несжатый RGBA RGBA High 32 4 да да да да да да
RGBA 16 bit Quantized RGBA RGBA Medium 16 2 да да да да да да
RGB Compressed DXT1 Сжатый RGB (также известный как BC1) RGB Medium 4 0.5 да да да no (3) нет partial (2)
RGB Crunched DXT1 Сжатый RGB с дополнительным сжатием Crunch на диске RGB Low to medium Variable Variable да да да no (3) нет partial (2)
RGB 48 bit Несжатый RGB, очень высокая точность. Преобразовано в RGBA 64 бит для графического процессора RGB Very high 48 disk, 64 GPU 6 disk, 8 GPU да да да partial (6) да нет
RGB 24 bit Несжатый RGB. Преобразовано в RGBA 32 бит для графического процессора RGB High 24 disk, 32 GPU 3 disk, 4 GPU да да да да да да
RGB 16 bit Quantized RGB RGB Medium 16 2 да да да да да да
RG Compressed BC5 Сжатый двухканальный (RG) RG High 8 1 да да да нет нет нет
RG 32 bit Несжатый двухканальный (RG), очень высокая точность RG Very high 32 4 да да да partial (6) да нет
R Compressed BC4 Сжатый одноканальный (R) R High 4 0.5 да да да нет нет нет
R 8 Несжатый одиночный канал (R) R High 8 1 да да да partial (5) да partial (5)
R 16 bit Несжатый одноканальный (R), очень высокая точность R Very high 16 2 да да да partial (6) partial (6) нет
Alpha 8 Несжатый одиночный канал (A) A High 8 1 да да да да да да
RGBA Half HDR, half-precision (FP16) RGBA, –64k to +64k range RGBA High 64 8 да да да partial (7) да partial (7)
RGB Compressed BC6H HDR, compressed RGB, 0 to +64k range RGB High 8 1 yes (1) yes (1) да нет нет нет
RGB9e5 32 Bit Shared Exponent Float HDR, quantized RGB, 0 to +64k range RGB Medium 32 4 да да да partial (4) да partial (4)
RGB(A) Compressed ASTC Сжатый RGB или RGBA, размер и качество зависят от размера блока RGB or RGBA Low to high 12x12: 0.89, 10x10: 1.28, 8x8: 2, 6x6: 3.56, 5x5: 5.12, 4x4: 8 12x12: 0.11, 10x10: 0.16, 8x8: 0.25, 6x6: 0.45, 5x5: 0.64, 4x4: 1.0 нет нет нет partial (8) yes (10) нет
RGBA Compressed ETC2 Compressed RGBA RGBA Medium 8 1 нет нет нет partial (9) да нет
RGBA Crunched ETC2 Сжатый RGBA с дополнительным сжатием Crunch на диске RGBA Low to medium Variable Variable нет нет нет partial (9) да нет
RGB + 1-bit Alpha Compressed ETC2 4 bits Сжатый RGBA, с полностью непрозрачными или полностью прозрачными альфа-значениями RGBA Medium 4 0.5 нет нет нет partial (9) да нет
RGBA Compressed PVRTC 4 bits Сжатый RGBA, текстура должна быть квадратной. RGBA Medium 4 0.5 нет нет нет no (12) да нет
RGBA Compressed PVRTC 2 bits Сжатый RGBA, текстура должна быть квадратной. RGBA Low 2 0.25 нет нет нет no (12) да нет
RGB Compressed ETC2 Compressed RGB RGB Medium 4 0.5 нет нет нет partial (9) да нет
RGB Compressed ETC Compressed RGB RGB Low 4 0.5 нет нет нет да да нет
RGB Crunched ETC Сжатый RGB с дополнительным сжатием Crunch на диске RGB Low Variable Variable нет нет нет да да нет
RGB Compressed PVRTC 4 bits Сжатый RGB, текстура должна быть квадратной. RGB Medium 4 0.5 нет нет нет no (12) да нет
RGB Compressed PVRTC 2 bits Сжатый RGB, текстура должна быть квадратной. RGB Low 2 0.25 нет нет нет no (12) да нет
RG Compressed EAC 8 bit Compressed two channel (RG) RG High 8 1 нет нет нет partial (9) да нет
R Compressed EAC 4 bit Compressed single channel (R) R High 4 0.5 нет нет нет partial (9) да нет
RGB(A) Compressed ASTC HDR HDR, сжатый RGB или RGBA, размер и качество зависят от размера блока RGB or RGBA Low to High 12x12: 0.89, 10x10: 1.28, 8x8: 2, 6x6: 3.56, 5x5: 5.12, 4x4: 8 12x12: 0.11, 10x10: 0.16, 8x8: 0.25, 6x6: 0.45, 5x5: 0.64, 4x4: 1.0 нет нет нет partial (11) partial (11) нет

Примечания:

  1. За исключением графических процессоров уровня до DX11 или macOS при использовании OpenGL. Если текстуры BC6H не поддерживаются, они распаковываются до RGBA Half, а текстуры BC7 распаковываются до RGBA32 во время загрузки.
  2. При линейном рендеринге в веб-браузерах, не поддерживающих sRGB DXT, во время загрузки текстуры распаковываются в формат RGBA32.
  3. Кроме устройств Android с графическими процессорами NVIDIA Tegra; они поддерживают форматы DXT/BC.
  4. Кроме OpenGL ES 2.0/WebGL 1.
  5. В OpenGL ES 2.0/WebGL 1: требуется поддержка расширения GL_EXT_texture_rg.
  6. Требуется GL_EXT_texture_norm16 или соответствующая возможность Vulkan на Android.
  7. В OpenGL ES 2.0/WebGL 1: требуется поддержка расширения OES_texture_half_float.
  8. Требуется расширение Vulkan или GL_KHR_texture_compression_astc_ldr OpenGL ES.
  9. Кроме OpenGL ES 2.0; там текстуры ETC2 распаковываются в формат, который запасной вариант ETC2 задает в настройках сборки Android или на вкладке Android для Переопределения для конкретных платформ.
  10. Кроме устройств с чипом Apple A7 (2013 г.).
  11. Android: требуется расширение GL_KHR_texture_compression_astc_hdr. iOS: требуется чип A13 или более поздней версии (2019 г.). Если эта функция не поддерживается, текстура распаковывается в формат RGB9E5 с потерей альфа-канала.
  12. Кроме устройств Android с графическими процессорами Imagination PowerVR; они поддерживают форматы PVRTC.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3