DDS Cube 地圖範例
針對立方體環境對應,Cube 的一或多個臉部會使用未壓縮或壓縮的格式寫入檔案,而且所有臉部的大小都必須相同。 雖然所有臉部都必須有相同的 Mipmap 層級數目,但每個臉部都可以定義 Mipmap。 如果檔案包含 Cube 對應、DDSCAPS_COMPLEX、DDSCAPS2_CUBEMAP,以及應設定一或多個DSCAPS2_CUBEMAP_POSITIVEX/Y/Z 和/或 DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z。 臉部的寫入順序如下:正 x、負 x、正 y、負 y、正 z、負 z、負 z,並省略任何遺漏臉部。 每個臉部都會以其主要影像撰寫,後面接著任何 Mipmap 層級。
例如,256 x 256 立方體地圖,具有正 x、負 y 和正 z 臉部、DXT1 的像素格式,以及所有 Mipmap 層級都會包含下列專案:
DDS 元件 | # 位元組 |
---|---|
header | 128 |
256 by-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],陣列大小為 6,0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]]) | 20 |
256 x 256 陣列專案 0 (正 x) 主要影像 | 65536 |
128 位元組 128 陣列專案 0 (正 x) mipmap 影像 | 16384 |
64 by-64 陣列專案 0 (正 x) mipmap 影像 | 4096 |
32 x 32 陣列專案 0 (正 x) mipmap 影像 | 1024 |
16 by-16 陣列專案 0 (正 x) mipmap 影像 | 256 |
8 by-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 |
相關主題