Powrót do bloga
Formaty

Format KTX2: przyszłość nowoczesnej kompresji tekstur

22 min. przeczytaj

KTX2 (Khronos Tekstura 2.0) reprezentuje kolejną ewolucję formatów kontenerów tekstur, zaprojektowanych specjalnie dla nowoczesnych interfejsów API grafiki, takich jak Vulkan, OpenGL i powstającego standardu WebGPU. Jako następca oryginalnego formatu KTX, KTX2 wprowadza rewolucyjne funkcje, w tym superkompresję Basis Universal, wyrafinowany system deskryptorów formatu danych (DFD) oraz natywną obsługę zaawansowanych funkcji tekstur, które były niemożliwe lub nieefektywne w poprzednich formatach. Dzięki naciskowi na kompatybilność z uniwersalną kartą graficzną, doskonałe współczynniki kompresji i szerokie możliwości metadanych, KTX2 stał się ostatecznym standardem dla zasobów tekstur w aplikacjach graficznych nowej generacji, od gier AAA po doświadczenia internetowe.

Co to jest format KTX2?

KTX2 to nowoczesny format kontenera tekstur, który opiera się na fundamentach swojego poprzednika, jednocześnie wprowadzając możliwości transformacji dla współczesnych przepływów pracy z grafiką. W przeciwieństwie do KTX1, który został zaprojektowany przede wszystkim pod kątem kompatybilności z OpenGL, KTX2 jest zbudowany w oparciu o potrzeby nowoczesnych interfejsów API, takich jak Vulkan i WebGPU, charakteryzując się całkowicie przeprojektowaną architekturą, która obsługuje superkompresję Basis Universal, zaawansowaną obsługę metadanych poprzez system Data Format Descriptor oraz wydajne przechowywanie złożonych typów tekstur, w tym tablic, tekstur 3D i map sześciennych.

Najbardziej znaczącą innowacją formatu jest natywna integracja z superkompresją Basis Universal, umożliwiającą przechowywanie tekstur w wysoce skompresowanych formatach pośrednich (ETC1S i UASTC), które można na żądanie transkodować do dowolnego formatu specyficznego dla procesora graficznego. To uniwersalne podejście do kompresji eliminuje potrzebę utrzymywania wielu wariantów formatów tekstur dla różnych platform, radykalnie zmniejszając wymagania dotyczące przechowywania zasobów i upraszczając wdrażanie na wielu platformach, przy jednoczesnym zachowaniu wysokiej jakości wizualnej na wszystkich urządzeniach docelowych.

KTX2 wprowadza również wyrafinowany system metadanych poprzez deskryptor formatu danych (DFD), który dostarcza szczegółowych, rozszerzalnych informacji o formatach danych tekstur, układach kanałów i parametrach kompresji. Ten bogaty ekosystem metadanych umożliwia automatyczne wykrywanie formatu, odpowiednią konfigurację próbkowania tekstur i bezproblemową integrację z nowoczesnymi potokami graficznymi, dzięki czemu KTX2 jest idealnym wyborem do zastosowań wymagających precyzyjnej kontroli tekstur i maksymalnej kompatybilności na różnych platformach sprzętowych.

Ewolucja od KTX1 do KTX2

Przejście z KTX1 na KTX2 to coś więcej niż tylko przyrostowa aktualizacja — to fundamentalne przemyślenie na nowo sposobu przechowywania, kompresji i wykorzystywania danych tekstur w nowoczesnych aplikacjach graficznych:

KTX1: Fundacja (2011-2020)

KTX1 stworzył koncepcję uniwersalnego formatu kontenera tekstur dla aplikacji OpenGL i OpenGL ES. Zapewnia podstawową strukturę do przechowywania skompresowanych tekstur z niezbędnymi metadanymi, obsługując popularne formaty kompresji, takie jak ETC, PVRTC i BCn.

Choć rewolucyjny jak na swoje czasy, KTX1 miał znaczące ograniczenia: prostą strukturę nagłówka, podstawowe możliwości metadanych, brak obsługi superkompresji i ograniczoną kompatybilność z nowoczesnymi funkcjami GPU. Dobrze sprawdzał się w tradycyjnych przepływach pracy OpenGL, ale miał trudności ze spełnieniem wymagań nowoczesnych aplikacji opartych na Vulkan i scenariuszy wdrożeń międzyplatformowych.

Okres przejściowy (2018-2020)

W miarę jak Vulkan zyskiwał popularność, a grafika mobilna ewoluowała, stało się jasne, że potrzebne jest nowe podejście. Grupa Khronos rozpoczęła prace nad KTX2 przy udziale największych firm graficznych, koncentrując się na uniwersalnej kompresji, ulepszonych metadanych i zgodności z nowoczesnymi API.

W tym okresie pojawiło się Basis Universal jako rozwiązanie superkompresyjne, opracowano system deskryptorów formatu danych i szeroko zakrojona współpraca branżowa, aby zapewnić, że KTX2 spełni różnorodne potrzeby twórców gier, twórców stron internetowych i specjalistów od grafiki na wszystkich platformach.

KTX2: nowoczesny standard (2020-obecnie)

KTX2 stanowi kompletną przebudowę architektury zaprojektowaną specjalnie dla nowoczesnych procesów graficznych. Dzięki natywnej obsłudze Vulkan, integracji z Basis Universal, wyrafinowanym metadanym poprzez DFD i kompatybilności z uniwersalną platformą, rozwiązuje wszystkie ograniczenia KTX1, jednocześnie dodając nowe, potężne możliwości.

Format ten szybko stał się de facto standardem dla nowych projektów, zwłaszcza tych ukierunkowanych na Vulkan, WebGPU i wdrożenia międzyplatformowe. Połączenie doskonałej kompresji, obszernych metadanych i uniwersalnej kompatybilności z procesorem graficznym sprawia, że ​​jest to idealny wybór dla nowoczesnych aplikacji graficznych.

Kluczowe cechy formatu KTX2

Podstawa uniwersalnej superkompresji

Natywna obsługa superkompresji Basis Universal umożliwiająca uniwersalną kompresję tekstur w formatach ETC1S i UASTC

Zaawansowana superkompresja

Obsługa schematów superkompresji Zstandard i ZLIB w celu dodatkowej redukcji rozmiaru pliku

Deskryptor formatu danych (DFD)

Wyrafinowany system metadanych zapewniający szczegółowe informacje o formacie i rozszerzalne możliwości deskryptorów

Uniwersalna kompatybilność z procesorem graficznym

Działa bezproblemowo ze wszystkimi nowoczesnymi procesorami graficznymi i interfejsami API, nie wymagając wariantów specyficznych dla formatu

Bogata obsługa metadanych

Kompleksowe metadane, w tym przestrzeń kolorów, orientacja, informacje o programie piszącym i niestandardowe pary klucz-wartość

Natywny Vulkan i WebGPU

Zaprojektowany specjalnie dla nowoczesnych interfejsów API z bezpośrednim ładowaniem procesora graficznego i optymalną charakterystyką wydajności

Podstawa uniwersalnej superkompresji

Sercem innowacji KTX2 jest jego integracja z superkompresją Basis Universal, która zapewnia dwa uzupełniające się podejścia do kompresji zoptymalizowane dla różnych przypadków użycia:

ETC1S (niska przepływność)

Wysoce skompresowany format zoptymalizowany pod kątem minimalnego rozmiaru pliku przy zachowaniu akceptowalnej jakości wizualnej. Idealny do aplikacji internetowych, gier mobilnych i środowisk o ograniczonej przepustowości.

Współczynnik kompresji: 8-12x mniejszy niż nieskompresowany PNG

Dobra jakość wizualna z pewnymi artefaktami kompresji, odpowiednia dla rozproszonych tekstur i elementów tła

Obsługuje przezroczystość binarną (1-bitowy kanał alfa)

Najlepsze do treści internetowych, aplikacji mobilnych i scenariuszy, w których rozmiar pliku ma pierwszeństwo przed maksymalną wiernością wizualną

UASTC (wysoka jakość)

Wysokiej jakości format kompresji porównywalny z BC7 pod względem jakości wizualnej, oferujący jednocześnie uniwersalną kompatybilność. Idealny do treści premium i aplikacji wymagających maksymalnej wierności wizualnej.

Współczynnik kompresji: 3-6x mniejszy niż nieskompresowany PNG

Doskonała jakość wizualna z minimalną liczbą artefaktów, odpowiednia dla tekstur bohaterów i szczegółowej zawartości

Obsługuje pełny 8-bitowy kanał alfa z płynnymi gradientami

Najlepsze do gier AAA, zaawansowanych aplikacji i scenariuszy, w których jakość obrazu jest ważniejsza od rozmiaru pliku

Struktura pliku KTX2

KTX2 charakteryzuje się wyrafinowaną strukturą plików zaprojektowaną z myślą o wydajnym analizowaniu i uniwersalnej kompatybilności:

Nagłówek pliku

Zawiera niezbędne informacje, w tym liczbę magiczną, identyfikator formatu, wymiary, przesunięcia metadanych i szczegóły formatu

Indeks poziomu

Zapewnia wydajny losowy dostęp do poziomów mipmap i tablic tekstur, umożliwiając selektywne ładowanie określonych poziomów mipmap

Deskryptory formatu danych

Szczegółowe informacje o formacie opisujące układ danych tekstury, konfigurację kanałów i parametry kompresji

Dane klucz-wartość

Rozszerzalny system metadanych do przechowywania orientacji, przestrzeni kolorów, informacji o programie piszącym i niestandardowych danych aplikacji

Globalne dane dotyczące superkompresji

Dane globalne wymagane dla schematów superkompresji, w tym dane obrazu Basis Universal i tabele kompresji

Poziomy mipmapy

Skompresowane dane obrazu dla każdego poziomu mipmapy, potencjalnie superkompresowane przy użyciu Zstandardu lub innych schematów

Dane obrazu

Rzeczywiste skompresowane dane tekstur uporządkowane według poziomu mipmapy i wycinka tablicy, z opcjonalną dodatkową superkompresją

System deskryptorów formatu danych (DFD).

System DFD to jedna z najpotężniejszych innowacji KTX2, zapewniająca kompleksowe informacje o formacie:

Opis formatu

Szczegółowa specyfikacja formatu danych tekstury, w tym rodzaj kompresji, głębia bitowa i konfiguracja kanałów

Mapowanie kanałów

Precyzyjne mapowanie kanałów danych na kanały kolorów (R, G, B, A) i ich interpretacja (sRGB, liniowe itp.)

Układ danych

Informacje o organizacji danych, w tym o rozmiarze bloku, układzie texela i strukturze bloku kompresji

Przykładowe informacje

Szczegóły dotyczące poszczególnych próbek, w tym głębia bitowa, przesunięcie i interpretacja w obrębie każdego teksela

Obsługiwane formaty kompresji

KTX2 obsługuje praktycznie wszystkie nowoczesne formaty kompresji tekstur dzięki uniwersalnej konstrukcji kontenera:

ETC (kompresja tekstury Ericsson)

Formaty kompresji zoptymalizowane pod kątem urządzeń mobilnych, w tym warianty ETC1, ETC2 i EAC. Doskonały do ​​aplikacji na Androida i urządzeń mobilnych.

ASTC (adaptacyjna skalowalna kompresja tekstury)

Elastyczna kompresja oparta na blokach obsługująca różne rozmiary bloków i poziomy jakości. Idealny dla platform mobilnych i nowoczesnych.

BCn (kompresja bloku)

Formaty kompresji zgodne z DirectX, w tym BC1-BC7. Idealny do aplikacji stacjonarnych i konsolowych z systemem Windows.

PVRTC (kompresja tekstur PowerVR)

Formaty kompresji specyficzne dla PowerVR zoptymalizowane dla urządzeń iOS i procesorów graficznych opartych na PowerVR.

Nieskompresowane formaty

Obsługa nieskompresowanych formatów, w tym R8, RG8, RGB8, RGBA8 i wariantów zmiennoprzecinkowych dla treści HDR.

Schematy superkompresji

KTX2 obsługuje wiele schematów superkompresji w celu dodatkowej redukcji rozmiaru pliku:

Zstandard

Kompresja ogólnego przeznaczenia zastosowana do już skompresowanych danych tekstur w celu dodatkowego zmniejszenia rozmiaru

ZLIB

Tradycyjny schemat kompresji zapewniający zgodność z istniejącymi narzędziami i potokami

Podstawa uniwersalna

Podstawowy schemat superkompresji wykorzystujący pośrednie formaty ETC1S lub UASTC, które można transkodować do dowolnego formatu GPU

Bogata obsługa metadanych

KTX2 zawiera kompleksowe metadane umożliwiające właściwą interpretację tekstur:

Orientacja tekstury

Informacje o orientacji tekstury, układzie współrzędnych i wymaganych przekształceniach do prawidłowego wyświetlania

Informacje o przestrzeni kolorów

Dane dotyczące przestrzeni kolorów i funkcji przesyłania w celu dokładnego odtwarzania kolorów na różnych urządzeniach wyświetlających

Informacje o pisarzu

Metadane dotyczące narzędzia lub aplikacji, która utworzyła teksturę, w tym wersja i parametry tworzenia

Ustawienia kompresji

Szczegółowe informacje o parametrach kompresji, ustawieniach jakości i zastosowanych opcjach kodowania

Kolory podstawowe

Specyfikacja kolorów podstawowych używanych w teksturze w celu dokładnej konwersji przestrzeni kolorów

Funkcja przenoszenia

Informacje o funkcji przesyłania w celu właściwej konwersji liniowej/sRGB i mapowania tonów

Nowoczesne przepływy pracy z teksturami

KTX2 umożliwia usprawniony przepływ pracy przy opracowywaniu nowoczesnej grafiki:

1

Tworzenie aktywów

Twórz wysokiej jakości tekstury źródłowe w standardowych formatach (PNG, TGA, EXR) z odpowiednią przestrzenią kolorów i rozdzielczością

2

Kodowanie KTX2

Zakoduj tekstury do KTX2 przy użyciu kompresji Basis Universal z odpowiednimi ustawieniami jakości dla platform docelowych

3

Kontrola jakości

Sprawdź jakość kompresji i wierność wizualną na różnych platformach docelowych i poziomach kompresji

4

Optymalizacja rozmiaru

Dostosuj ustawienia kompresji i superkompresji, aby zrównoważyć jakość i rozmiar pliku dla konkretnych zastosowań

5

Walidacja formatu

Sprawdź, czy pliki KTX2 spełniają wszystkie wymagania i zawierają niezbędne metadane dla platform docelowych

6

Wdrożenie międzyplatformowe

Wdrażaj pojedyncze pliki KTX2, które działają na wszystkich platformach docelowych, bez wariantów specyficznych dla formatu

Zalety formatu KTX2

Nowoczesny natywny interfejs API

Zaprojektowany specjalnie dla Vulkan i WebGPU z optymalną wydajnością i obsługą funkcji

Uniwersalna kompatybilność

Pojedynczy format działa na wszystkich platformach i procesorach graficznych bez konieczności stosowania wielu wariantów formatu

Doskonała kompresja

Basis Universal zapewnia doskonałe współczynniki kompresji przy zachowaniu wysokiej jakości obrazu

Kompatybilny wstecz

Istnieją narzędzia i przepływy pracy umożliwiające konwersję ze starszych formatów na nowoczesny KTX2

Rozszerzalna konstrukcja

System DFD pozwala na przyszłe rozszerzenia formatów i niestandardowe wymagania dotyczące metadanych

Przyszłościowe

Aktywny rozwój i przyjęcie w branży zapewniają długoterminową rentowność i wsparcie

Idealne przypadki użycia

Aplikacje Vulkan

Natywne wsparcie dla nowoczesnych aplikacji Vulkan wymagających optymalnej wydajności i kompatybilności funkcji

Rozwój WebGPU

Idealny do aplikacji internetowych nowej generacji wykorzystujących technologię WebGPU w celu zapewnienia wysokiej wydajności grafiki

Rozwój gry

Gry AAA i gry niezależne korzystają z uniwersalnej kompresji i kompatybilności między platformami

Aplikacje mobilne

Zoptymalizowany dla platform mobilnych z wydajną kompresją i układem danych przyjaznym dla GPU

Doświadczenia internetowe

Aplikacje internetowe wymagające wysokiej jakości grafiki przy efektywnym wykorzystaniu przepustowości

Wizualizacja przedsiębiorstwa

Profesjonalna wizualizacja i aplikacje CAD wymagające precyzyjnej kontroli tekstur

KTX2 kontra inne formaty

Zrozumienie, jak KTX2 wypada na tle innych formatów tekstur:

KTX2 kontra KTX1

KTX2 oferuje superkompresję Basis Universal, zaawansowane metadane DFD i nowoczesną obsługę API, podczas gdy KTX1 zapewnia podstawową funkcjonalność kontenera dla aplikacji OpenGL z ograniczonymi funkcjami

KTX2 kontra DDS

KTX2 zapewnia kompatybilność z uniwersalnymi platformami i doskonałą kompresję, podczas gdy DDS koncentruje się na systemie Windows z ograniczonymi opcjami kompresji i możliwościami metadanych

KTX2 vs Basis Universal

KTX2 to format kontenera wykorzystujący do kompresji Basis Universal, podczas gdy Basis Universal jest samym algorytmem kompresji. KTX2 zapewnia dodatkowe funkcje metadanych i formatowania

KTX2 vs ASTC

KTX2 to kontener, który może zawierać skompresowane dane ASTC, natomiast ASTC to specyficzny format kompresji. KTX2 zapewnia uniwersalną kompatybilność wykraczającą poza rozwiązania wyłącznie ASTC

Narzędzia i ekosystem KTX2

toktx (narzędzie teksturowania KTX2)

Narzędzie wiersza poleceń do tworzenia i manipulowania plikami KTX2 z obsługą wszystkich formatów kompresji i schematów superkompresji

Pakiet oprogramowania KTX

Kompleksowy zestaw narzędzi obejmujący narzędzia do sprawdzania poprawności, konwersji i inspekcji przepływów pracy KTX2

SDK Vulkana

Natywna obsługa KTX2 w Vulkan SDK ze zoptymalizowanym ładowaniem i kompatybilnością z GPU

Implementacje WebGPU

Rosnące wsparcie dla KTX2 w przeglądarkach WebGPU i frameworkach dla grafiki internetowej nowej generacji

Silnik Unity

Unity obsługuje import KTX2 i ładowanie środowiska wykonawczego dla wieloplatformowych aplikacji mobilnych i stacjonarnych

Nierealny silnik

Unreal Engine zapewnia obsługę KTX2 dla nowoczesnych potoków renderowania i wdrożeń międzyplatformowych

Najlepsze praktyki dla KTX2

Użyj kompresji ETC1S dla treści internetowych i aplikacji mobilnych, gdzie rozmiar pliku ma kluczowe znaczenie

Wybierz kompresję UASTC dla treści premium i aplikacji wymagających maksymalnej jakości obrazu

Zawsze dołączaj odpowiednie metadane przestrzeni kolorów, aby zapewnić dokładne odwzorowanie kolorów na różnych urządzeniach

Wykorzystaj łańcuchy mipmap do prawidłowego filtrowania tekstur przy różnych odległościach oglądania

Rozważ superkompresję za pomocą Zstandardu, aby dodatkowo zmniejszyć rozmiar pliku w przypadku dużych tekstur

Przed wdrożeniem zweryfikuj pliki KTX2 za pomocą narzędzia ktxinfo, aby zapewnić kompatybilność

Użyj odpowiednich wymiarów tekstur (potęga dwójki), aby uzyskać optymalną wydajność procesora graficznego

Dołącz metadane orientacji, aby zapewnić prawidłowe wyświetlanie tekstur w różnych układach współrzędnych

Migracja do KTX2

Strategie migracji istniejących zasobów tekstur do KTX2:

Z KTX1

Użyj narzędzia toktx do konwersji plików KTX1 na KTX2 za pomocą superkompresji Basis Universal w celu poprawy kompresji i obsługi nowoczesnych interfejsów API

Z DDS

Konwertuj pliki DDS na KTX2, używając odpowiednich ustawień kompresji, aby zachować jakość obrazu, jednocześnie uzyskując kompatybilność między platformami

Z obrazów PNG/źródłowych

Koduj bezpośrednio obrazy źródłowe do formatu KTX2 za pomocą kompresji Basis Universal, aby uzyskać optymalną jakość i rozmiar pliku

Tworzenie podstawowych wariantów uniwersalnych

Wygeneruj warianty ETC1S i UASTC, aby obsługiwać różne wymagania dotyczące jakości i rozmiaru pliku

Rozważania dotyczące wydajności

Zrozumienie charakterystyki wydajności KTX2:

Wydajność kompresji

Czas kodowania różni się w zależności od formatu: ETC1S jest szybki, UASTC jest wolniejszy, ale zapewnia wyższą jakość

Wydajność procesora graficznego

Bezpośrednie ładowanie procesora graficznego zapewnia optymalną wydajność przy minimalnym obciążeniu procesora i zużyciu pamięci

Wykorzystanie pamięci

Efektywne wykorzystanie pamięci dzięki obsłudze przesyłania strumieniowego i selektywnemu ładowaniu poziomu mipmapy

Wydajność ładowania

Szybkie ładowanie przy minimalnym nakładzie transkodowania na nowoczesnych procesorach graficznych i platformach

Przyszłość KTX2

Przyszły plan rozwoju KTX2:

Kompresja wzmocniona sztuczną inteligencją

Integracja technik uczenia maszynowego w celu poprawy jakości i wydajności kompresji

Kompresja w czasie rzeczywistym

Kompresja tekstur w czasie rzeczywistym do dynamicznego generowania treści i tekstur proceduralnych

Przetwarzanie w chmurze

Usługi w chmurze do przetwarzania tekstur na dużą skalę i procesów optymalizacji

Ulepszona obsługa wielu platform

Ciągłe rozszerzanie obsługi platform i kompatybilności procesorów graficznych na nowym sprzęcie

Wniosek

KTX2 stanowi znaczący krok naprzód w technologii kontenerów tekstur, zaspokajając złożone potrzeby nowoczesnych aplikacji graficznych dzięki innowacyjnemu połączeniu superkompresji Basis Universal, wyrafinowanych systemów metadanych i kompatybilności z uniwersalną platformą. W miarę jak rozwój grafiki ewoluuje w kierunku Vulkan, WebGPU i scenariuszy wdrożeń międzyplatformowych, KTX2 stanowi podstawę wydajnych, wysokiej jakości przepływów pracy z teksturami, które można skalować od urządzeń mobilnych po wysokiej klasy komputery do gier.

Dla programistów rozpoczynających nowe projekty lub planujących migrację istniejących zasobów, KTX2 oferuje przyszłościowe rozwiązanie, które równoważy wydajność kompresji, jakość wizualną i elastyczność wdrażania. Szerokie wsparcie branżowe, aktywny rozwój i kompleksowy ekosystem narzędzi formatu zapewniają, że przez wiele lat pozostanie on standardem w zakresie przechowywania i dystrybucji tekstur.

Przyjmując KTX2 już dziś, programiści mogą usprawnić przepływ pracy z teksturami, zmniejszyć wymagania dotyczące przechowywania zasobów i zapewnić, że ich aplikacje będą gotowe na następną generację sprzętu graficznego i interfejsów API. Niezależnie od tego, czy tworzysz aplikacje internetowe, gry mobilne, czy tytuły AAA, KTX2 zapewnia narzędzia i możliwości potrzebne do zapewnienia wyjątkowych wrażeń wizualnych na wszystkich platformach.

Referencje i dalsze czytanie

Zapoznaj się z tymi zasobami, aby lepiej zrozumieć format KTX2:

Wypróbuj nasze narzędzia