Przykład mapy sześciennej DDS
W przypadku map środowiskowych sześciennych co najmniej jedna ściana sześcianu jest zapisywana w pliku przy użyciu formatów nieskompresowanych lub skompresowanych, a wszystkie ściany muszą mieć taki sam rozmiar. Każda twarz może mieć zdefiniowane mipmapy, chociaż wszystkie twarze muszą mieć taką samą liczbę poziomów mipmap. Jeśli plik zawiera mapę sześcienną, należy ustawić DDSCAPS_COMPLEX, DDSCAPS2_CUBEMAP i co najmniej jedną z DSCAPS2_CUBEMAP_POSITIVEX/Y/Z i/lub DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z. Twarze są zapisywane w kolejności: dodatnie x, ujemne x, dodatnie y, ujemne y, dodatnie z, ujemne z, z z pominiętymi brakującymi twarzami. Każda twarz jest zapisywana przy użyciu głównego obrazu, a następnie dowolnych poziomów mipmap.
Na przykład mapa sześcienna 256 na 256 z dodatnimi ścianami dla osi x, ujemnymi dla osi y i dodatnimi dla osi z, w formacie pikseli DXT1, ze wszystkimi poziomami mipmap, zawiera następujące elementy:
Składniki DDS | Liczba bajtów |
---|---|
nagłówek | 128 |
256-by-256 dodatni x obraz główny | 32768 |
128 x 128 pozytywny obraz mipmap x | 8192 |
Obraz mipmap 64 na 64 dla osi dodatniej x | 2048 |
32-by-32 dodatni obraz mipmap x | 512 |
16-by-16 dodatni obraz mipmap x | 128 |
Obraz mipmap 8-by-8 o dodatnich współrzędnych x | 32 |
4 na 4 dodatni obraz mipmap na osi x | 8 |
Mipmapowy obraz 2 na 2 o dodatniej osi x | 8 |
1-by-1 dodatni obraz mipmap x | 8 |
powtórz poprzednie 9 warstw dla obrazu mipmap Y | 43704 |
powtórz poprzednie 9 warstw dla obrazu mipmap z | 43704 |
Począwszy od DirectX 8, mapa sześcienna jest przechowywana ze wszystkimi zdefiniowanymi ścianami.
Mapy sześcienne DXGI
Mapy środowiska sześciennego w 10.x i Direct3D 11 są równoważne tablicy tekstur 2D z 6 obrazami i mogą być przechowywane w plikach DDS. Dzięki funkcjom Direct3D 10.1 i Direct3D 11 sprzęt może również obsługiwać tablice map sześciennych, które same w sobie są tablicami tekstur 2D zawierającymi wielokrotność 6 obrazów (6, 12, 18, 24 itd.).
Na przykład poniżej przedstawiono cubemap 256 na 256 z poziomami mipmap przechowywanymi w formacie BC6H jako tablica tekstury 2D.
Składniki DDS | Liczba bajtów |
---|---|
nagłówek (FourCC z "DX10") | 128 |
rozszerzony nagłówek (format DXGI ustawiony na 95 [DXGI_FORMAT_BC6H_UF16], wartość wymiaru 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D], rozmiar tablicy 1, flagi misc 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) | 20 |
Główny obraz elementu 0 (dodatni x) tablicy 256-na-256 | 65536 |
Obraz mipmap z wpisu 0 tablicy 128 na 128 (oś x dodatnia) | 16384 |
Wejście 0 tablicy 64-na-64 (dodatnie x) obraz mipmap | 4096 |
Obraz mipmap wejścia 0 tablicy 32-na-32 (dodatni x) | 1024 |
Mipmap dla wpisu tablicy 16 na 16, element 0 (dodatni x) | 256 |
Obraz mipmap elementu 0 tablicy 8×8 (dodatni x) | 64 |
Obraz mipmap dla elementu tablicy 4 na 4 o indeksie 0 (dodatni x) | 16 |
Obraz mipmap pozycji 0 (dodatni x) w tablicy 2-na-2 | 16 |
Obraz mipmap o rozmiarze 1 na 1 dla elementu 0 tablicy (dodatni x) | 16 |
powtórz poprzednie 9 warstw dla obrazu mipmap dla elementu 1 tablicy (z ujemnym x) | 87408 |
powtórz poprzednie 9 warstw dla obrazu mipmap dla wpisu tablicy 2 (przy dodatnim y) | 87408 |
powtórz poprzednie 9 warstw dla obrazu mipmap dla pozycji tablicy 3 (ujemne y) | 87408 |
powtórz poprzednie 9 warstw dla wpisu tablicy 4 (dodatni z) obrazu mipmap | 87408 |
Powtórz poprzednie 9 warstw dla obrazu mipmap w pozycji 5 tablicy (ujemne z) | 87408 |
Tematy pokrewne
-
Przewodnik programowania dla usługi DDS