Powrót do bloga
Formaty

Format PVR: kompletny przewodnik po kompresji tekstur PowerVR

16 min. przeczytaj

Format PVR (PowerVR) to zastrzeżony format kontenera tekstur firmy Imagination Technologies, zaprojektowany specjalnie dla procesorów graficznych PowerVR i szeroko stosowany na urządzeniach z systemem iOS i platformach mobilnych. Jako natywny format tekstur dla systemu iOS i wielu systemów wbudowanych, PVR obsługuje algorytmy PVRTC (PowerVR Structure Compression) wraz z innymi formatami kompresji, takimi jak ETC i ASTC, co czyni go wszechstronnym wyborem do tworzenia gier mobilnych. Przyspieszone sprzętowo dekodowanie i efektywne wykorzystanie pamięci sprawiają, że jest to niezbędne w zastosowaniach mobilnych, gdzie wydajność i żywotność baterii mają kluczowe znaczenie.

Co to jest format PVR?

PVR to format kontenera opracowany przez Imagination Technologies do przechowywania skompresowanych tekstur zoptymalizowanych pod kątem procesorów graficznych PowerVR. Format ten, pierwotnie stworzony dla mobilnych procesorów graficznych, stał się de facto standardem dla aplikacji iOS i jest szeroko obsługiwany na platformach mobilnych. PVR służy jako opakowanie dla różnych formatów kompresji tekstur, w szczególności PVRTC, który zapewnia wydajną, przyspieszaną sprzętowo kompresję dla urządzeń mobilnych.

Siła formatu polega na natywnej obsłudze kompresji PVRTC, która została specjalnie zaprojektowana z myślą o ograniczeniach urządzeń mobilnych – ograniczonej przepustowości pamięci, mocy baterii i możliwościach przetwarzania. PVRTC zapewnia doskonałe współczynniki kompresji przy zachowaniu akceptowalnej jakości obrazu, dzięki czemu idealnie nadaje się do gier mobilnych i aplikacji, w których wydajność jest najważniejsza.

Oprócz PVRTC nowoczesne pliki PVR mogą również zawierać dane ETC, ASTC i nieskompresowane dane tekstur, co czyni je elastycznym kontenerem, który można dostosować do różnych możliwości urządzenia. Ta elastyczność, w połączeniu z głęboką integracją z narzędziami programistycznymi iOS i szeroką obsługą sprzętu, sprawia, że ​​PVR jest niezbędnym formatem dla programistów mobilnych skupiających się na iOS i innych platformach opartych na PowerVR.

Kluczowe cechy formatu PVR

Przyspieszenie sprzętowe

Natywna obsługa sprzętu GPU dla formatów PVRTC na procesorach graficznych PowerVR przy zerowym obciążeniu procesora

Obsługa wielu formatów

Obsługuje formaty PVRTC, ETC, ASTC i nieskompresowane w jednym kontenerze

Zoptymalizowany pod kątem urządzeń mobilnych

Zaprojektowany specjalnie z myślą o ograniczeniach urządzeń mobilnych i wydajności baterii

Pełna obsługa Mipmap

Natywna pamięć łańcuchowa mipmap i wydajne zarządzanie na poziomie szczegółowości

Obsługiwane formaty kompresji

Format kontenera PVR obsługuje wiele algorytmów kompresji, każdy zoptymalizowany pod kątem różnych przypadków użycia:

PVRTC (kompresja tekstur PowerVR)

Zastrzeżony format kompresji zaprojektowany specjalnie dla procesorów graficznych PowerVR, dostępny w wariantach 2bpp i 4bpp.

PVRTC zapewnia doskonałe współczynniki kompresji (4:1 do 8:1) z akceleracją sprzętową na procesorach graficznych PowerVR. Idealny do aplikacji iOS i urządzeń mobilnych opartych na PowerVR.

ETC (kompresja tekstury Ericsson)

Standardowy format kompresji dla urządzeń mobilnych, szeroko obsługiwany na platformach Android i iOS.

ETC1 zapewnia kompresję RGB w stosunku 4:1, podczas gdy ETC2 dodaje obsługę kompresji z kanałami alfa. Standardowy format kompresji tekstur Androida.

ASTC (adaptacyjna skalowalna kompresja tekstury)

Nowoczesny format kompresji obsługujący wiele rozmiarów bloków i poziomów jakości.

ASTC zapewnia doskonałe współczynniki jakość/kompresja przy elastycznych rozmiarach bloków od 4x4 do 12x12 pikseli. Obsługiwane na nowszych urządzeniach z systemem iOS i Android.

ETC2/EAC

Ulepszona wersja ETC z poprawioną jakością i obsługą kanału alfa.

ETC2 poprawia ETC1 i zapewnia lepszą jakość, podczas gdy EAC zapewnia kompresję normalnych map i tekstur jednokanałowych.

EAC (kompresja alfa ETC)

Dedykowana kompresja danych tekstur alfa i jednokanałowych.

EAC zapewnia wydajną kompresję kanałów alfa i tekstur jednokanałowych, takich jak mapy normalnych lub mapy wysokości.

Nieskompresowane formaty

Standardowe nieskompresowane formaty spełniające wymagania wysokiej jakości.

Obsługa RGB, RGBA i różnych nieskompresowanych formatów, gdy artefakty kompresji są niedopuszczalne.

Struktura pliku PVR

Pliki PVR mają ustrukturyzowany format składający się z trzech głównych komponentów:

Nagłówek PVR (52 bajty)

Zawiera metadane pliku, informacje o wersji, wymiary tekstury i specyfikacje formatu

Metadane tekstur

Dodatkowe informacje, w tym liczba mipmap, liczba powierzchni, flagi kompresji i szczegóły formatu pikseli

Skompresowane dane tekstury

Rzeczywiste skompresowane dane pikseli uporządkowane według poziomów mipmap i powierzchni tekstur

Szczegóły kompresji PVRTC

PVRTC występuje w dwóch głównych wariantach, każdy zoptymalizowany pod kątem różnych wymagań dotyczących jakości i rozmiaru:

PVRTC 2bpp (2 bity na piksel)

Wyższy współczynnik kompresji (8:1) przy niższej jakości. Nadaje się do tekstur i tła o niskiej szczegółowości.

Najlepsze do: tekstur tła, elementów interfejsu użytkownika, powierzchni o niskiej szczegółowości, aplikacji o ograniczonej pamięci

PVRTC 4bpp (4 bity na piksel)

Niższy stopień kompresji (4:1) i wyższa jakość. Standardowy wybór dla większości tekstur mobilnych.

Najlepsze do: tekstur postaci, szczegółowych powierzchni, tekstur ogólnego przeznaczenia, aplikacji na iOS

Proces opracowywania tekstur PVR

Tworzenie i optymalizacja tekstur PVR obejmuje kilka kluczowych etapów:

1

Przygotowanie obrazu źródłowego

Przygotuj wysokiej jakości obrazy źródłowe o odpowiednich wymiarach (najlepiej potęga dwójki w przypadku starszych urządzeń)

2

Wybór formatu

Wybierz odpowiedni format kompresji w oparciu o platformę docelową i wymagania jakościowe

3

Kompresja tekstur

Użyj PVRTexTool lub podobnych narzędzi, aby skompresować obrazy źródłowe do formatu PVR

4

Optymalizacja jakości

Dostosuj ustawienia kompresji i przejrzyj wyniki, aby zrównoważyć jakość i rozmiar pliku

5

Integracja aplikacji

Zintegruj pliki PVR ze swoją aplikacją, zapewniając odpowiednie ładowanie i obsługę błędów

Kluczowe zalety formatu PVR

Doskonała kompresja

PVRTC zapewnia współczynnik kompresji od 4:1 do 8:1 z dekodowaniem przyspieszanym sprzętowo

Jakość zoptymalizowana pod kątem urządzeń mobilnych

Zaprojektowany specjalnie do mobilnych warunków oglądania i charakterystyki wyświetlania

Elastyczność formatu

Obsługuje wiele formatów kompresji w jednym kontenerze, co zapewnia szeroką kompatybilność

Natywna obsługa sprzętu

Bezpośrednia obsługa procesora graficznego na urządzeniach opartych na PowerVR bez narzutu dekompresji procesora

Integracja z iOS

Głęboka integracja z narzędziami programistycznymi iOS i wsparcie własne w frameworkach Apple

Typowe przypadki użycia

Tworzenie gier na iOS

Natywny format tekstur dla aplikacji iOS z optymalną wydajnością na wszystkich urządzeniach z systemem iOS

Gry mobilne

Idealny do gier mobilnych ukierunkowanych na wydajność baterii i optymalizację wydajności

Gry wieloplatformowe

Idealny do gier obsługujących zarówno iOS, jak i Androida z obsługą formatu awaryjnego

Aplikacje WebGL

Obsługiwany format aplikacji internetowych przeznaczonych dla urządzeń mobilnych za pośrednictwem WebGL

Systemy wbudowane

Szeroko stosowany w systemach wbudowanych i wyświetlaczach samochodowych z procesorami graficznymi PowerVR

PVR kontra inne formaty

Zrozumienie porównania PVR z innymi formatami kompresji tekstur:

PVR kontra DDS

PVR jest zoptymalizowany pod kątem platform mobilnych, podczas gdy DDS jest przeznaczony do gier komputerowych w formatach BCn

PVR kontra KTX

PVR ma silniejszą integrację z iOS, podczas gdy KTX zapewnia lepszą standaryzację międzyplatformową

PVR vs ASTC

PVR z PVRTC ma szerszą obsługę, podczas gdy ASTC zapewnia lepszą jakość i elastyczność

PVR kontra ETC

PVR zapewnia lepszą obsługę iOS, podczas gdy ETC to standard Androida z szerszą obsługą sprzętu

Narzędzia i zasoby programistyczne

Zestaw SDK PowerVR

Oficjalny pakiet SDK firmy Imagination Technologies z kompleksowymi narzędziami do programowania PVR

Narzędzie PVRTex

Oficjalne narzędzie do tworzenia i optymalizacji tekstur PVR z możliwością konwersji formatu

Wsparcie Unity PVR

Wbudowana obsługa kompresji PVR w ustawieniach importu tekstur Unity

Unreal Engine PVR

Natywna obsługa formatu PVR w Unreal Engine dla iOS i programowania mobilnego

Narzędzie do kompresji tekstury Arm Mali

Alternatywne narzędzie do kompresji tekstur PVR i porównywania formatów

Najlepsze praktyki w zakresie rozwoju PVR

Użyj potęgi dwóch wymiarów, aby uzyskać optymalną kompatybilność ze starszymi urządzeniami iOS i procesorami graficznymi

Dla większości tekstur wybierz PVRTC 4bpp, chyba że ograniczenia pamięci wymagają kompresji 2bpp

Przetestuj skompresowane tekstury na rzeczywistych urządzeniach docelowych, aby ocenić jakość wizualną i wydajność

Rozważ ASTC jako alternatywę dla nowszych urządzeń z systemem iOS, gdy wymagana jest wyższa jakość

Użyj odpowiednich ustawień mipmapy, aby zoptymalizować wydajność przy różnych odległościach oglądania

Sprawdź poprawność plików PVR na docelowym sprzęcie na wczesnym etapie projektowania, aby uniknąć problemów ze zgodnością

Wybierając kompresję PVRTC, ETC i ASTC, należy wziąć pod uwagę możliwości urządzenia

Migracja i nowoczesne alternatywy

W przypadku nowych projektów rozważ następujące ścieżki migracji i nowoczesne alternatywy:

Migracja z ASTC do PVR

Użyj PVRTexTool, aby przekonwertować tekstury ASTC na PVRTC w celu zapewnienia zgodności ze starszymi urządzeniami iOS

Migracja z ETC do PVR

Konwertuj tekstury ETC do formatu PVRTC w celu optymalizacji specyficznej dla systemu iOS i lepszej integracji

Migracja z DDS do PVR

Użyj narzędzi do konwersji tekstur, aby przenieść tekstury pulpitu do formatu PVR zoptymalizowanego pod kątem urządzeń mobilnych

Przejście do nowoczesnych formatów

Rozważ ASTC w przypadku nowych projektów ukierunkowanych na nowsze urządzenia, zachowując PVR jako opcję awaryjną

Wniosek

Format PVR pozostaje niezbędnym narzędziem w tworzeniu gier mobilnych, szczególnie dla aplikacji iOS i urządzeń opartych na PowerVR. Przyspieszana sprzętowo kompresja PVRTC zapewnia doskonałą równowagę między jakością obrazu i wydajnością na platformach mobilnych, gdzie żywotność baterii i wydajność renderowania mają kluczowe znaczenie.

Chociaż nowsze formaty, takie jak ASTC, oferują lepszą jakość i elastyczność, obsługa starszej wersji PVR, integracja z iOS i sprawdzona wydajność sprawiają, że jest to niezawodny wybór dla programistów mobilnych. Zrozumienie, kiedy i jak używać formatu PVR, ma kluczowe znaczenie dla optymalizacji aplikacji mobilnych i zapewnienia najlepszego doświadczenia użytkownika w różnych ekosystemach urządzeń.

Dalsza lektura i zasoby

Poszerzaj swoją wiedzę, korzystając z tych wiarygodnych zasobów:

Wypróbuj nasze narzędzia