共用方式為


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

 

DDS 的程式設計指南