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. |
Tematy pokrewne
-
kompresja bloku (Direct3D 10)