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

Выберите формат текстуры GPU по платформе

Настольный компьютер

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

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

iOS и tvOS

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

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

Android

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

Вы можете выбрать формат по умолчанию в Настройки проигрывателя. Вы можете выбрать ASTC, ETC2 и ETC (ETC1 для RGB, ETC2 для RGBA). См. Настройки сжатия текстуры для более подробной информации о взаимодействии различных параметров.

Для текстур LDR RGB и RGBA, большинство современных Android GPUs, которые поддерживают OpenGL ES 3.1 или Vulkan также поддерживают формат ASTC, включая: Qualcomm GPUs с Adreno 4xx / Snapdragon 415 (2015), ARM GPUs с Mali T624 (2012), NVIDIA GPUs с Tegra K1 (2014), PowerVR GPUs с GX6250 (2014).

Если вам нужна поддержка для старых устройств, или вы хотите дополнительное сжатие Crunch, то все GPUs, которые работают Vulkan или OpenGL ES 3.0 поддерживают формат ETC2. Полученное качество изображения достаточно высокое, и он поддерживает данные текстуры от одного до четырех компонентов. Для даже более старых устройств, обычно доступен только формат ETC. Недостаток в том, что нет прямой поддержки альфа-канала. Для спрайтов Unity предлагает возможность использования сжатия ETC1 путем разделения текстуры на две ETC1 текстуры: одну для RGB, другую для альфы. Чтобы это включить, включите Android-специальную опцию Split Alpha Channel для Texture при импорте Атлас Спрайта. Сприт-шайдер семплирует обе текстуры и комбинирует их в окончательный результат.

Для старых устройств Android, которые не поддерживают формат ASTC, текстура декомпрессируется в несжатый RGBA 32-битный формат. Это увеличивает использование памяти и может замедлить декомпрессию, выполняемую на CPU.

Для текстур HDR, ASTC HDR является единственным сжатым форматом, доступным на устройствах Android. ASTC HDR требует поддержки Vulkan или GL_KHR_texture_compression_astc_hdr. ASTC является наиболее гибким форматом. Если устройство не поддерживает ASTC HDR текстура декомпрессируется во время выполнения до RGB9e5 или RGBA Half, в зависимости от использования альфа-канала.

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

Если вы хотите распространить свое приложение на Google Play, то лучше всего использовать сжатие текстуры для.

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

Android текстура AssetBundle совместимость

Использовать AssetBundle варианты, все текстуры, которые не могут быть чисто сжаты с помощью ETC1 должен быть изолирован в текстуре только AssetBundles. Затем создать достаточное количество вариантов этих AssetBundles в поддержку неправительственных организацийETC2-способные ломтики Android экосистема, используя специфические для производителя форматы сжатия текстуры, такие как DXT5. Для каждого AssetBundle вариант, изменить включенные текстуры’ TextureImporter настройки формата сжатия, соответствующего варианту.

Во время выполнения поддержка различных форматов сжатия текстур может быть обнаружена с помощью SystemInfo.SupportsTextureFormat API. Эта информация должна использоваться для выбора и загрузки варианта AssetBundle, содержащего текстуры, сжатые в поддерживаемом формате.

Дополнительные сведения о форматах сжатия текстур см. в документации Android по Поддержка сжатия текстур.

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