Powrót do bloga
Formaty

Format ASTC: najlepszy przewodnik po kompresji tekstur

12 min. przeczytaj

ASTC (Adaptive Scalable Structure Compression) to najbardziej zaawansowany i elastyczny format kompresji tekstur dostępny obecnie. Opracowany przez firmę ARM i przyjęty jako oficjalny standard Khronos, ASTC zapewnia niespotykaną dotąd kontrolę nad jakością i współczynnikami kompresji, co czyni go idealnym wyborem dla nowoczesnej grafiki mobilnej i stacjonarnej.

Co to jest ASTC?

ASTC to format kompresji tekstur oparty na blokach stratnych, zaprojektowany w celu zastąpienia starszych formatów, takich jak ETC, PVRTC i DXT/BCn. Został specjalnie zaprojektowany, aby zapewnić pojedynczy, ujednolicony format, który działa na wszystkich platformach i obsługuje szeroki zakres kompromisów jakość/rozmiar.

W przeciwieństwie do poprzednich formatów ze stałymi współczynnikami kompresji, ASTC umożliwia programistom wybór spośród 14 różnych rozmiarów bloków 2D (od 4×4 do 12×12) i wielu poziomów jakości, oferując precyzyjną kontrolę nad równowagą pomiędzy jakością obrazu a zużyciem pamięci.

ASTC obsługuje zawartość LDR (Low Dynamic Range) i HDR (High Dynamic Range), 1-4 kanały kolorów oraz tekstury 2D i 3D. Ta wszechstronność sprawia, że ​​nadaje się do praktycznie każdego typu tekstury w nowoczesnych aplikacjach graficznych.

Kluczowe cechy ASTC

Elastyczne rozmiary bloków

14 różnych rozmiarów bloków 2D od 4×4 (8 bpp) do 12×12 (0,89 bpp), umożliwiających precyzyjną kontrolę nad współczynnikiem kompresji i jakością

Regulowana jakość

Wiele poziomów jakości kodowania (szybkie, średnie, dokładne, wyczerpujące), aby zrównoważyć czas kodowania i wierność wizualną

Obsługa HDR

Natywna obsługa tekstur High Dynamic Range, niezbędna w nowoczesnych przepływach pracy PBR (renderowanie oparte na fizyce).

Wydajny sprzętowo

Zaprojektowany do wydajnej dekompresji sprzętowej przy minimalnym zużyciu energii i wykorzystaniu przepustowości pamięci

Wyjaśnienie rozmiarów bloków ASTC

Rozmiar bloku ASTC określa współczynnik kompresji i jakość. Mniejsze bloki zachowują więcej szczegółów, ale oferują mniejszą kompresję:

Rozmiar blokuBity/pikselJakośćNajlepszy przypadek użycia
4x48.00NajwyższySzczegółowe tekstury, normalne mapy
5x55.12WysokiWysokiej jakości tekstury kolorów
6x63.56Średnio-wysokiZrównoważona jakość/rozmiar (zalecane ustawienie domyślne)
8x82.00ŚredniTekstury tła, elementy interfejsu użytkownika
12x120.89NiżejMaksymalna kompresja dla dużych tekstur

Poziomy jakości kodowania

Kodery ASTC obsługują wiele ustawień jakości, które wpływają na czas kodowania i jakość wydruku:

Szybko

~1-2 sekundy

Najszybsze kodowanie i dobra jakość. Nadaje się do szybkiej iteracji podczas programowania.

Średni

~5-10 sekund

Zrównoważona jakość i szybkość. Zalecane do większości przypadków użycia i kompilacji produkcyjnych.

Dokładny

~30-60 sekund

Wysokiej jakości kompresja z bardziej wyczerpującym wyszukiwaniem. Dobre dla zasobów bohaterów i ostatecznych wersji.

Wyczerpujący

~2-5 minut

Maksymalna jakość przy bardzo wolnym kodowaniu. Używaj w przypadku krytycznych zasobów, gdzie jakość jest najważniejsza.

Zalety ASTC

Obsługa platformy uniwersalnej

Obsługiwane na wszystkich nowoczesnych mobilnych procesorach graficznych (OpenGL ES 3.2+, Vulkan), zastępując wiele formatów specyficznych dla platformy jednym rozwiązaniem.

Niezrównana elastyczność

14 rozmiarów bloków i wiele poziomów jakości zapewniają większą kontrolę niż jakikolwiek inny format kompresji, optymalizując pod kątem każdego typu tekstury.

Najwyższa jakość

Zaawansowane algorytmy kompresji zapewniają lepszą jakość obrazu niż ETC, PVRTC lub DXT przy porównywalnych przepływnościach.

Nowoczesne funkcje

Obsługa HDR, tekstury 3D i optymalne kodowanie materiałów PBR sprawiają, że ASTC jest przyszłościowe dla nowoczesnych technik renderowania.

ASTC kontra inne formaty

Porównanie ASTC z tradycyjnymi formatami kompresji tekstur:

w porównaniu z ETC1/ETC2

ETC to starszy format Androida ze stałą kompresją 4:1 (ETC1) lub 8:1 (ETC2 RGBA).

Przewaga ASTC: ASTC oferuje lepszą jakość przy tej samej przepływności i obsługuje większe współczynniki kompresji (0,89-8 bpp w porównaniu z 4-8 bpp)

przeciwko PVRTC

PVRTC to starszy format systemu iOS z kompresją 2 lub 4 bitów na piksel.

Przewaga ASTC: ASTC zapewnia lepszą jakość, większą elastyczność i pozwala uniknąć artefaktów granic bloków PVRTC

vs DXT/BCn

DXT/BCn to standard dla komputerów stacjonarnych z 4-8 bitami na piksel dla różnych formatów.

Przewaga ASTC: ASTC dorównuje lub przewyższa jakość BCn, oferując jednocześnie niższą przepływność (do 0,89 bpp) dla urządzeń mobilnych

Jak korzystać z formatu ASTC

Używanie ASTC w swoich projektach jest proste dzięki naszym narzędziom online:

Kodowanie do ASTC

  1. Prześlij swój obraz źródłowy (PNG, JPG) — działa w dowolnych wymiarach
  2. Wybierz rozmiar bloku w oparciu o wymagania dotyczące jakości/rozmiaru (w większości przypadków zalecane jest 6 × 6)
  3. Wybierz jakość kodowania (średnia do opracowania, dokładna/wyczerpująca do produkcji)
  4. Pobierz plik .astc i zintegruj go ze swoim projektem

Dekodowanie plików ASTC

  1. Prześlij plik .astc, aby sprawdzić jego zawartość
  2. Wyświetl zdekompresowaną teksturę z informacjami o rozmiarze bloku i formacie
  3. Eksportuj do formatu PNG w celu edycji lub weryfikacji jakości

Najlepsze praktyki

  • Użyj bloków 6×6 jako punktu wyjścia (3,56 bpp) – zapewnia to doskonałą równowagę jakość/rozmiar dla większości tekstur
  • Wybierz mniejsze bloki (4 × 4, 5 × 5), aby uzyskać tekstury krytyczne dla szczegółów, takie jak normalne mapy lub tekst interfejsu użytkownika
  • Użyj większych bloków (8×8, 10×10, 12×12) do tła, skyboxów lub tekstur oglądanych z daleka
  • Testuj różne poziomy jakości — często wystarczający jest „średni”, „dokładny” lub „wyczerpujący” używaj tylko w przypadku zasobów bohaterów
  • Rozważ użycie różnych rozmiarów bloków dla różnych typów tekstur w tej samej aplikacji, aby zoptymalizować wykorzystanie pamięci
  • Zawsze przeglądaj skompresowane tekstury na urządzeniach docelowych — postrzeganie jakości różni się w zależności od zawartości i warunków oglądania

Wniosek

ASTC reprezentuje szczyt technologii kompresji tekstur, oferując niezrównaną elastyczność, jakość i obsługę platformy. Jego adaptacyjny charakter umożliwia programistom precyzyjne dostrojenie kompresji dla każdego zasobu, optymalizując równowagę między wiernością wizualną a zużyciem pamięci.

Niezależnie od tego, czy tworzysz na platformy mobilne, stacjonarne czy konsolowe, ASTC zapewnia przyszłościowe rozwiązanie, które można skalować od urządzeń z niższej półki po wysokiej klasy grafikę. Nasze narzędzia online ASTC ułatwiają eksperymentowanie z różnymi ustawieniami i znalezienie idealnej konfiguracji dla potrzeb Twojego projektu.

Dalsza lektura i odniesienia

Zanurz się głębiej w ASTC, korzystając z tych wiarygodnych zasobów:

Wypróbuj nasze narzędzia