Эта страница содержит следующую информацию:
- Терминология
- Рекомендуемые форматы текстур в зависимости от платформы
- Компьютер
- iOS и tvOS
- Android
- Форматы текстур по умолчанию в зависимости от платформы
- Поддерживаемые форматы текстур в зависимости от платформы
Эта страница не содержит информации о консольных платформах. Информацию о платформах консолей см. в документации по платформам.
Обзор форматов текстур см. в разделе Форматы текстур. Информацию о настройках импорта текстур и о том, как установить переопределения для каждой конкретной платформы, см. в настройках импорта текстур. Некоторые параметры импорта текстур также можно глобально переопределить в настройках сборки, в основном для ускорения итераций во время разработки.
Терминология
На этой странице используется следующая терминология:
-
Бит на пиксельНаименьшая единица измерения компьютерного изображения. Размер пикселя зависит от разрешения вашего экрана. Пиксельное освещение рассчитывается для каждого пикселя экрана. Подробнее
См. в Словарь (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) | нет |
Примечания:
- За исключением графических процессоров уровня до DX11 или macOS при использовании OpenGL. Если текстуры BC6H не поддерживаются, они распаковываются до RGBA Half, а текстуры BC7 распаковываются до RGBA32 во время загрузки.
- При линейном рендеринге в веб-браузерах, не поддерживающих sRGB DXT, во время загрузки текстуры распаковываются в формат RGBA32.
- Кроме устройств Android с графическими процессорами NVIDIA Tegra; они поддерживают форматы DXT/BC.
- Кроме OpenGL ES 2.0/WebGL 1.
- В OpenGL ES 2.0/WebGL 1: требуется поддержка расширения GL_EXT_texture_rg.
- Требуется GL_EXT_texture_norm16 или соответствующая возможность Vulkan на Android.
- В OpenGL ES 2.0/WebGL 1: требуется поддержка расширения OES_texture_half_float.
- Требуется расширение Vulkan или GL_KHR_texture_compression_astc_ldr OpenGL ES.
- Кроме OpenGL ES 2.0; там текстуры ETC2 распаковываются в формат, который запасной вариант ETC2 задает в настройках сборки Android или на вкладке Android для Переопределения для конкретных платформ.
- Кроме устройств с чипом Apple A7 (2013 г.).
- Android: требуется расширение GL_KHR_texture_compression_astc_hdr. iOS: требуется чип A13 или более поздней версии (2019 г.). Если эта функция не поддерживается, текстура распаковывается в формат RGB9E5 с потерей альфа-канала.
- Кроме устройств Android с графическими процессорами Imagination PowerVR; они поддерживают форматы PVRTC.