對於立方體環境對應,Cube 的一或多個臉部會使用未壓縮或壓縮的格式寫入檔案,而且所有臉部的大小都必須相同。 每個臉部都可以定義Mipmap,不過所有臉部都必須有相同的Mipmap層級數目。 如果檔案包含 Cube 對應,應該設定DDSCAPS_COMPLEX、DDSCAPS2_CUBEMAP,以及一或多個DSCAPS2_CUBEMAP_POSITIVEX/Y/Z 和/或 DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z。 臉部會以下列順序撰寫:正 x、負 x、正 y、負 y、正 z、負 z,並省略任何遺漏的臉部。 每個臉部都會以其主要影像撰寫,後面接著任何Mipmap層級。
例如,具有正 x、負 y 和正 z 臉部的 256 by-256 Cube 地圖、DXT1 的圖元格式,以及所有 Mipmap 層級都會包含下列內容:
DDS 元件 | # 位元組 |
---|---|
頁眉 | 128 |
256 x 256 正 x 主要影像 | 32768 |
128 by-128 正 x mipmap 影像 | 8192 |
64 by-64 正 x mipmap 影像 | 2048 |
32-by-32 正 x mipmap 影像 | 512 |
16 by-16 正 x mipmap 影像 | 128 |
8-by-8 正 x mipmap 影像 | 32 |
4-by-4 正 x mipmap 影像 | 8 |
2-by-2 正 x mipmap 影像 | 8 |
1-by-1 正 x mipmap 影像 | 8 |
針對 y mipmap 影像重複前 9 層 | 43704 |
針對 z mipmap 影像重複前 9 層 | 43704 |
從 DirectX 8 開始,Cube 地圖會與定義的所有臉部一起儲存。
DXGI Cube 地圖
Direct3D 10.x 和 Direct3D 11 中的立方環境地圖相當於具有 6 個影像的 2D 紋理數位,而且可以儲存在 DDS 檔案中,例如。 使用 Direct3D 10.1 和 Direct3D 11,硬體也可以支援立方體貼圖的陣列,這些立方體貼圖本身是 2D 紋理陣列,其中包含 6 個影像的倍數(6、12、18、24 等等)。
例如,以下是以 BC6H 格式儲存為 2D 紋理陣列的 mipmap 層級的 256 by-256 Cubemap:
DDS 元件 | # 位元組 |
---|---|
標頭 (“DX10” 的 FourCC) | 128 |
擴充標頭 (DXGI 格式設定為 95 [DXGI_FORMAT_BC6H_UF16],維度值為 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D],陣列大小為 1,0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) | 20 |
256 位元組 256 陣組專案 0 (正 x) 主要影像 | 65536 |
128 位元組 128 陣組專案 0 (正 x) mipmap 影像 | 16384 |
64 by-64 陣組專案 0 (正 x) mipmap 影像 | 4096 |
32 位元組 32 陣組專案 0 (正 x) mipmap 影像 | 1024 |
16 by-16 陣組專案 0 (正 x) mipmap 影像 | 256 |
8 位元組 8 陣組專案 0 (正 x) mipmap 影像 | 64 |
4 位元組 4 陣組專案 0 (正 x) mipmap 影像 | 16 |
2-by-2 陣列專案 0 (正 x) mipmap 影像 | 16 |
1-by-1 陣列專案 0 (正 x) mipmap 影像 | 16 |
針對陣列專案 1 (負 x) mipmap 影像重複前 9 層 | 87408 |
針對陣列專案 2 重複前 9 層(正 y) mipmap 影像 | 87408 |
針對陣列專案 3 重複前 9 層 (負 y) mipmap 影像 | 87408 |
針對陣列專案 4 重複前 9 層(正 z) mipmap 影像 | 87408 |
針對陣列專案 5 重複前 9 層 (負 z) mipmap 影像 | 87408 |
相關主題