共用方式為


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,並省略任何遺漏的臉部。 每個臉部都會以其主要影像撰寫,後面接著任何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

 

DDS 程式設計指南