Вернуться в блог
Форматы

Формат KTX2: будущее современного сжатия текстур

22 минута чтения

KTX2 (Khronos Texture 2.0) представляет собой следующую эволюцию форматов контейнеров текстур, специально разработанных для современных графических API, таких как Vulkan, OpenGL и развивающийся стандарт WebGPU. Являясь преемником исходного формата KTX, KTX2 представляет революционные функции, включая суперсжатие Basis Universal, сложную систему дескрипторов формата данных (DFD) и встроенную поддержку расширенных функций текстур, которые были невозможны или неэффективны в предыдущих форматах. Благодаря акценту на универсальной совместимости с графическими процессорами, превосходной степени сжатия и расширенным возможностям метаданных, KTX2 стал окончательным стандартом для текстурных ресурсов в графических приложениях следующего поколения, начиная от игр AAA и заканчивая веб-приложениями.

Что такое формат KTX2?

KTX2 — это современный формат контейнера текстур, созданный на основе своего предшественника и предлагающий возможности преобразования для современных рабочих процессов с графикой. В отличие от KTX1, который был в первую очередь разработан для совместимости с OpenGL, KTX2 создан с учетом потребностей современных API, таких как Vulkan и WebGPU, с полностью переработанной архитектурой, которая поддерживает суперсжатие Basis Universal, расширенную обработку метаданных через систему дескрипторов формата данных и эффективное хранение сложных типов текстур, включая массивы, 3D-текстуры и кубические карты.

Самым значительным нововведением этого формата является его встроенная интеграция со сверхсжатием Basis Universal, позволяющая хранить текстуры в сильно сжатых промежуточных форматах (ETC1S и UASTC), которые по требованию можно перекодировать в любой формат, специфичный для графического процессора. Этот универсальный подход к сжатию устраняет необходимость поддерживать несколько вариантов формата текстур для разных платформ, что значительно снижает требования к хранению ресурсов и упрощает кросс-платформенное развертывание, сохраняя при этом высокое качество изображения на всех целевых устройствах.

KTX2 также представляет сложную систему метаданных через дескриптор формата данных (DFD), который предоставляет подробную, расширяемую информацию о форматах данных текстур, расположении каналов и параметрах сжатия. Эта богатая экосистема метаданных обеспечивает автоматическое определение формата, правильную настройку выборки текстур и плавную интеграцию с современными графическими конвейерами, что делает KTX2 идеальным выбором для приложений, требующих точного управления текстурами и максимальной совместимости с различными аппаратными платформами.

Эволюция от KTX1 к KTX2

Переход от KTX1 к KTX2 представляет собой нечто большее, чем просто постепенное обновление — это фундаментальное переосмысление того, как данные текстур должны храниться, сжиматься и использоваться в современных графических приложениях:

KTX1: Фонд (2011–2020)

KTX1 разработал концепцию универсального формата контейнера текстур для приложений OpenGL и OpenGL ES. Он предоставил базовую структуру для хранения сжатых текстур с необходимыми метаданными, поддерживая распространенные форматы сжатия, такие как ETC, PVRTC и BCn.

Будучи революционным для своего времени, KTX1 имел существенные ограничения: простая структура заголовка, базовые возможности метаданных, отсутствие поддержки суперсжатия и ограниченная совместимость с современными функциями графического процессора. Он хорошо подходил для традиционных рабочих процессов OpenGL, но с трудом отвечал требованиям современных приложений на базе Vulkan и сценариев кроссплатформенного развертывания.

Переходный период (2018-2020 гг.)

По мере распространения Vulkan и развития мобильной графики стало ясно, что необходим новый подход. Группа Khronos начала разработку KTX2 при участии крупных графических компаний, уделяя особое внимание универсальному сжатию, улучшенным метаданным и совместимости с современными API.

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

KTX2: Современный стандарт (с 2020 г. по настоящее время)

KTX2 представляет собой полную модернизацию архитектуры, разработанную специально для современных графических рабочих процессов. Благодаря встроенной поддержке Vulkan, интеграции Basis Universal, сложным метаданным через DFD и универсальной совместимости с платформами он устраняет все ограничения KTX1, добавляя при этом новые мощные возможности.

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

Ключевые особенности формата KTX2

Базис универсального суперсжатия

Встроенная поддержка суперсжатия Basis Universal, обеспечивающая универсальное сжатие текстур в форматах ETC1S и UASTC.

Расширенное суперсжатие

Поддержка схем суперсжатия Zstandard и ZLIB для дополнительного уменьшения размера файлов.

Дескриптор формата данных (DFD)

Сложная система метаданных, предоставляющая подробную информацию о формате и расширяемые возможности дескрипторов.

Универсальная совместимость с графическим процессором

Беспрепятственно работает со всеми современными графическими процессорами и API, не требуя вариантов для конкретного формата.

Богатая поддержка метаданных

Комплексные метаданные, включая цветовое пространство, ориентацию, информацию о авторе и пользовательские пары ключ-значение.

Vulkan и WebGPU Native

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

Базис универсального суперсжатия

В основе инноваций KTX2 лежит интеграция с суперсжатием Basis Universal, которое обеспечивает два взаимодополняющих подхода к сжатию, оптимизированных для разных случаев использования:

ETC1S (низкий битрейт)

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

Коэффициент сжатия: в 8–12 раз меньше, чем у несжатого PNG.

Хорошее визуальное качество с некоторыми артефактами сжатия, подходит для диффузных текстур и элементов фона.

Поддерживает двоичную прозрачность (1-битный альфа-канал)

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

УАСТК (высокое качество)

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

Коэффициент сжатия: в 3–6 раз меньше, чем у несжатого PNG.

Отличное визуальное качество с минимальными артефактами, подходящее для текстур героев и детального контента.

Поддерживает полный 8-битный альфа-канал с плавными градиентами.

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

Структура файла KTX2

KTX2 имеет сложную файловую структуру, предназначенную для эффективного анализа и универсальной совместимости:

Заголовок файла

Содержит важную информацию, включая магическое число, идентификатор формата, размеры, смещения метаданных и сведения о формате.

Индекс уровня

Обеспечивает эффективный произвольный доступ к уровням MIP-карт и массивам текстур, позволяя выборочно загружать определенные MIP-уровни.

Дескрипторы формата данных

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

Данные «ключ-значение»

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

Суперсжатие глобальных данных

Глобальные данные, необходимые для схем суперсжатия, включая данные изображений Basis Universal и таблицы сжатия.

Уровни MIP-карт

Сжатые данные изображения для каждого уровня MIP-карты, потенциально сверхсжатые с использованием Zstandard или других схем.

Данные изображения

Фактические сжатые данные текстуры, организованные по уровням MIP-карт и срезам массива, с дополнительным дополнительным суперсжатием.

Система дескриптора формата данных (DFD)

Система DFD — одна из самых мощных инноваций KTX2, предоставляющая исчерпывающую информацию о формате:

Формат Описание

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

Сопоставление каналов

Точное сопоставление каналов данных с цветовыми каналами (R, G, B, A) и их интерпретация (sRGB, линейный и т. д.)

Расположение данных

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

Пример информации

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

Поддерживаемые форматы сжатия

KTX2 поддерживает практически все современные форматы сжатия текстур благодаря универсальному дизайну контейнера:

ETC (сжатие текстур Ericsson)

Mobile-optimized compression formats including ETC1, ETC2, and EAC variants. Отлично подходит для Android и мобильных приложений.

ASTC (Адаптивное масштабируемое сжатие текстур)

Гибкое блочное сжатие, поддерживающее различные размеры блоков и уровни качества. Идеально подходит для мобильных и современных платформ.

BCn (блочное сжатие)

Совместимые с DirectX форматы сжатия, включая BC1-BC7. Идеально подходит для настольных и консольных приложений Windows.

PVRTC (сжатие текстур PowerVR)

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

Несжатые форматы

Поддержка несжатых форматов, включая R8, RG8, RGB8, RGBA8 и варианты с плавающей запятой для HDR-контента.

Схемы суперсжатия

KTX2 поддерживает несколько схем суперсжатия для дополнительного уменьшения размера файла:

Zстандарт

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

ZLIB

Традиционная схема сжатия, обеспечивающая совместимость с существующими инструментами и конвейерами.

База универсальная

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

Богатая поддержка метаданных

KTX2 включает подробные метаданные для правильной интерпретации текстур:

Ориентация текстуры

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

Информация о цветовом пространстве

Цветовое пространство и данные функции передачи для точной цветопередачи на различных устройствах отображения.

Информация о писателе

Метаданные об инструменте или приложении, создавшем текстуру, включая версию и параметры создания.

Настройки сжатия

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

Основные цвета

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

Передаточная функция

Информация о функции передачи для правильного преобразования линейного/sRGB и отображения тонов

Современные рабочие процессы с текстурами

KTX2 обеспечивает оптимизацию рабочих процессов для разработки современной графики:

1

Создание активов

Создавайте высококачественные исходные текстуры в стандартных форматах (PNG, TGA, EXR) с правильным цветовым пространством и разрешением.

2

Кодирование KTX2

Кодируйте текстуры в KTX2 с использованием сжатия Basis Universal с соответствующими настройками качества для целевых платформ.

3

Контроль качества

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

4

Оптимизация размера

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

5

Проверка формата

Убедитесь, что файлы KTX2 соответствуют всем требованиям и содержат необходимые метаданные для целевых платформ.

6

Кроссплатформенное развертывание

Развертывание отдельных файлов KTX2, которые работают на всех целевых платформах, без вариантов для конкретного формата.

Преимущества формата KTX2

Современный API

Специально разработан для Vulkan и WebGPU с оптимальной производительностью и поддержкой функций.

Универсальная совместимость

Один формат работает на всех платформах и графических процессорах, не требуя нескольких вариантов формата.

Превосходное сжатие

Basis Universal обеспечивает превосходную степень сжатия при сохранении высокого качества изображения.

Обратная совместимость

Существуют инструменты и рабочие процессы для преобразования устаревших форматов в современные KTX2.

Расширяемый дизайн

Система DFD допускает будущие расширения формата и требования к пользовательским метаданным.

Будущее

Активное развитие и внедрение в отрасли обеспечивают долгосрочную жизнеспособность и поддержку.

Идеальные варианты использования

Приложения Вулкан

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

Разработка веб-GPU

Идеально подходит для веб-приложений нового поколения, использующих WebGPU для высокопроизводительной графики.

Разработка игр

ААА-игры и инди-игры выигрывают от универсального сжатия и кроссплатформенной совместимости.

Мобильные приложения

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

Веб-опыт

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

Корпоративная визуализация

Профессиональные приложения визуализации и САПР, требующие точного управления текстурой.

KTX2 против других форматов

Понимание различий KTX2 с другими форматами текстур:

КТХ2 против КТХ1

KTX2 предлагает суперсжатие Basis Universal, сложные метаданные DFD и поддержку современных API, а KTX1 обеспечивает базовую функциональность контейнера для приложений OpenGL с ограниченными возможностями.

KTX2 против DDS

KTX2 обеспечивает универсальную совместимость с платформами и превосходное сжатие, а DDS ориентирован на Windows с ограниченными возможностями сжатия и возможностями метаданных.

KTX2 против Basis Universal

KTX2 — это формат контейнера, который использует Basis Universal для сжатия, а Basis Universal — это сам алгоритм сжатия. KTX2 предоставляет дополнительные метаданные и функции формата.

KTX2 против ASTC

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

Инструменты и экосистема KTX2

toktx (инструмент текстурирования KTX2)

Инструмент командной строки для создания файлов KTX2 и управления ими с поддержкой всех форматов сжатия и схем суперсжатия.

Пакет программного обеспечения KTX

Комплексный набор инструментов, включая утилиты проверки, преобразования и проверки для рабочих процессов KTX2.

Вулкан SDK

Встроенная поддержка KTX2 в Vulkan SDK с оптимизированной загрузкой и совместимостью с графическим процессором.

Реализации WebGPU

Растущая поддержка KTX2 в браузерах и платформах WebGPU для веб-графики нового поколения.

Unity Движок

Unity поддерживает импорт KTX2 и загрузку во время выполнения для кроссплатформенных мобильных и настольных приложений.

Нереальный движок

Unreal Engine обеспечивает поддержку KTX2 для современных конвейеров рендеринга и кроссплатформенного развертывания.

Лучшие практики для KTX2

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

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

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

Используйте цепочки MIP-карт для правильной фильтрации текстур на разных расстояниях просмотра.

Рассмотрите возможность суперсжатия с помощью Zstandard для дополнительного уменьшения размера файла больших текстур.

Перед развертыванием проверьте файлы KTX2 с помощью инструмента ktxinfo, чтобы обеспечить совместимость.

Используйте соответствующие размеры текстур (степень двойки) для оптимальной производительности графического процессора.

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

Миграция на KTX2

Стратегии переноса существующих текстурных ресурсов в KTX2:

От КТХ1

Используйте инструмент toktx для преобразования файлов KTX1 в KTX2 с суперсжатием Basis Universal для улучшения сжатия и поддержки современных API.

Из ДДС

Преобразуйте файлы DDS в KTX2, используя соответствующие настройки сжатия, чтобы сохранить качество изображения и обеспечить кроссплатформенную совместимость.

Из PNG/исходных изображений

Непосредственное кодирование исходных изображений в KTX2 с помощью сжатия Basis Universal для оптимального качества и размера файла.

Создание базовых универсальных вариантов

Создавайте варианты ETC1S и UASTC для поддержки различных требований к качеству и размеру файла.

Вопросы производительности

Понимание характеристик производительности KTX2:

Производительность сжатия

Время кодирования зависит от формата: ETC1S работает быстрее, UASTC медленнее, но обеспечивает более высокое качество.

Производительность графического процессора

Прямая загрузка графического процессора обеспечивает оптимальную производительность при минимальной нагрузке на процессор и использовании памяти.

Использование памяти

Эффективное использование памяти с поддержкой потоковой передачи и выборочной загрузкой уровня MIP-карт.

Загрузка производительности

Быстрая загрузка с минимальными затратами на транскодирование на современных графических процессорах и платформах.

Будущее KTX2

Будущая дорожная карта развития KTX2:

Улучшенное AI сжатие

Интеграция методов машинного обучения для улучшения качества и производительности сжатия.

Сжатие в реальном времени

Сжатие текстур в реальном времени для создания динамического контента и процедурных текстур.

Облачная обработка

Облачные сервисы для крупномасштабной обработки текстур и рабочих процессов оптимизации.

Расширенная кроссплатформенная поддержка

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

Заключение

KTX2 представляет собой значительный шаг вперед в технологии контейнеров текстур, удовлетворяя сложные потребности современных графических приложений благодаря инновационному сочетанию суперсжатия Basis Universal, сложных систем метаданных и совместимости с универсальными платформами. Поскольку разработка графики продолжает развиваться в направлении Vulkan, WebGPU и сценариев кросс-платформенного развертывания, KTX2 обеспечивает основу для эффективных, высококачественных рабочих процессов с текстурами, которые масштабируются от мобильных устройств до высокопроизводительных игровых ПК.

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

Приняв KTX2 сегодня, разработчики могут оптимизировать рабочие процессы с текстурами, снизить требования к хранению ресурсов и обеспечить готовность своих приложений к графическому оборудованию и API следующего поколения. Независимо от того, создаете ли вы веб-приложения, мобильные игры или игры AAA, KTX2 предоставляет инструменты и возможности, необходимые для обеспечения исключительного визуального опыта на всех платформах.

Ссылки и дополнительная литература

Изучите эти ресурсы для более глубокого понимания формата KTX2:

Попробуйте наши инструменты