Udostępnij za pośrednictwem


Kompresja bloku tekstury w trybie Direct3D 11

Obsługa kompresji blokowej (BC) dla tekstur została rozszerzona w trybie Direct3D 11 w celu uwzględnienia algorytmów BC6H i BC7. Bc6H obsługuje dane źródła kolorów o wysokiej dynamice, a BC7 zapewnia lepszą niż średnią kompresję jakości z mniejszymi artefaktami dla standardowych danych źródłowych RGB.

Aby uzyskać bardziej szczegółowe informacje na temat obsługi algorytmu kompresji bloków przed direct3D 11, w tym obsługi formatów BC1 do BC5, zobacz Block Compression (Direct3D 10).

Uwaga o formatach plików: Formaty kompresji tekstur BC6H i BC7 używają formatu pliku DDS do przechowywania skompresowanych danych tekstury. Aby uzyskać więcej informacji, zobacz przewodnik programowania dla usługi DDS, aby uzyskać szczegółowe informacje.

Blokuj formaty kompresji obsługiwane w trybie Direct3D 11

Dane źródłowe Minimalna wymagana rozdzielczość kompresji danych Zalecany format Minimalny obsługiwany poziom funkcji
Kolor trójkanałowy z kanałem alfa Trzy kanały kolorów (5 bitów:6 bitów:5 bitów), z 0 lub 1 bitami alfa BC1 Direct3D 9.1
Kolor trójkanałowy z kanałem alfa Trzy kanały kolorów (5 bitów:6 bitów:5 bitów), z 4 bitami alfa BC2 Direct3D 9.1
Kolor trójkanałowy z kanałem alfa Trzy kanały kolorów (5 bitów:6 bitów:5 bitów) z 8 bitami alfa BC3 Direct3D 9.1
Kolor jednego kanału Jeden kanał kolorów (8 bitów) BC4 Direct3D 10
Kolor dwukanałowy Dwa kanały kolorów (8 bitów:8 bitów) BC5 Direct3D 10
Kolor trójkanałowego zakresu dynamicznego (HDR) Trzy kanały kolorów (16 bitów:16 bitów:16 bitów) w zmiennoprzecinku "połowa" * BC6H Direct3D 11
Kolor trójkanałowy, opcjonalny kanał alfa Trzy kanały kolorów (od 4 do 7 bitów na kanał) z od 0 do 8 bitów alfa BC7 Direct3D 11

*"Pół" zmiennoprzecinkowy to wartość 16-bitowa, która składa się z opcjonalnego bitu znaku, 5-bitowego wykładnika i 10 lub 11-bitowej mantissa.

Formaty BC1, BC2 i B3

Formaty BC1, BC2 i BC3 są równoważne formatom kompresji tekstur Direct3D 9 DXTn i są takie same jak odpowiednie formaty Direct3D 10 BC1, BC2 i BC3. Obsługa tych trzech formatów jest wymagana przez wszystkie poziomy funkcji (D3D_FEATURE_LEVEL_9_1, D3D_FEATURE_LEVEL_9_2, D3D_FEATURE_LEVEL_9_3, D3D_FEATURE_LEVEL_10_0, D3D_FEATURE_LEVEL_10_1 i D3D_FEATURE_LEVEL_11_0).

Format kompresji blokuj Format DXGI Format równoważny Direct3D 9 Bajty na blok 4x4 pikseli
BC1 DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC1_UNORM_SRGB, DXGI_FORMAT_BC1_TYPELESS D3DFMT_DXT1, FourCC="DXT1" 8
BC2 DXGI_FORMAT_BC2_UNORM, DXGI_FORMAT_BC2_UNORM_SRGB, DXGI_FORMAT_BC2_TYPELESS D3DFMT_DXT2*, FourCC="DXT2", D3DFMT_DXT3, FourCC="DXT3" 16
BC3 DXGI_FORMAT_BC3_UNORM, DXGI_FORMAT_BC3_UNORM_SRGB, DXGI_FORMAT_BC3_TYPELESS D3DFMT_DXT4*, FourCC="DXT4", D3DFMT_DXT5, FourCC="DXT5" 16

*Te schematy kompresji (DXT2 i DXT4) nie rozróżniają wstępnie pomnożonego formatu alfa Direct3D 9 i standardowych formatów alfa. To rozróżnienie musi być obsługiwane przez programowalne cieniowania w czasie renderowania.

Formaty BC4 i BC5

Format kompresji blokuj Format DXGI Format równoważny Direct3D 9 Bajty na blok 4x4 pikseli
BC4 DXGI_FORMAT_BC4_UNORM, DXGI_FORMAT_BC4_SNORM, DXGI_FORMAT_BC4_TYPELESS FourCC="ATI1" 8
BC5 DXGI_FORMAT_BC5_UNORM, DXGI_FORMAT_BC5_SNORM, DXGI_FORMAT_BC5_TYPELESS FourCC="ATI2" 16

BC6H Format

Aby uzyskać bardziej szczegółowe informacje na temat tego formatu, zobacz dokumentację BC6H Format.

Format kompresji blokuj Format DXGI Format równoważny Direct3D 9 Bajty na blok 4x4 pikseli
BC6H DXGI_FORMAT_BC6H_UF16, DXGI_FORMAT_BC6H_SF16, DXGI_FORMAT_BC6H_TYPELESS N/A 16

Format BC6H może wybierać różne tryby kodowania dla każdego bloku pikseli 4x4. Dostępnych jest łącznie 14 różnych trybów kodowania, z których każdy ma nieco inne kompromisy w wynikowej jakości wizualnej wyświetlanej tekstury. Wybór trybów umożliwia szybkie dekodowanie przez sprzęt z wybranym lub dostosowanym poziomem jakości zgodnie z zawartością źródłową, ale również znacznie zwiększa złożoność przestrzeni wyszukiwania.

BC7 Format

Aby uzyskać bardziej szczegółowe informacje na temat tego formatu, zobacz dokumentację BC7 Format.

Format kompresji blokuj Format DXGI Format równoważny Direct3D 9 Bajty na blok 4x4 pikseli
BC7 DXGI_FORMAT_BC7_UNORM, DXGI_FORMAT_BC7_UNORM_SRGB, DXGI_FORMAT_BC7_TYPELESS N/A 16

Format BC7 może wybierać różne tryby kodowania dla każdego bloku 4x4 pikseli. Dostępnych jest łącznie 8 różnych trybów kodowania, z których każda ma nieco inne kompromisy w wynikowej jakości wizualnej wyświetlanej tekstury. Wybór trybów umożliwia szybkie dekodowanie przez sprzęt z wybranym lub dostosowanym poziomem jakości zgodnie z zawartością źródłową, ale również znacznie zwiększa złożoność przestrzeni wyszukiwania.

W tej sekcji

Temat Opis
format BC6H
Format BC6H to format kompresji tekstury przeznaczony do obsługi przestrzeni kolorów o wysokiej dynamic range (HDR) w danych źródłowych.
format BC7
Format BC7 to format kompresji tekstury używany do wysokiej jakości kompresji danych RGB i RGBA.
dokumentacja trybu formatowania BC7
Ta dokumentacja zawiera listę 8 trybów bloków i alokacji bitów dla bloków formatu kompresji tekstury BC7.

kompresja bloku (Direct3D 10)

tekstury