对于立方环境映射,多维数据集的一个或多个人脸都使用未压缩或压缩的格式写入文件,并且所有人脸的大小必须相同。 每个人脸都可以定义 mipmap,尽管所有人脸必须具有相同数量的 mipmap 级别。 如果文件包含多维数据集映射、DDSCAPS_COMPLEX、DDSCAPS2_CUBEMAP以及应设置一个或多个 DSCAPS2_CUBEMAP_POSITIVEX/Y/Z 和/或 DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z。 人脸按顺序编写:正 x、负 x、正 y、负 y、正 z、负 z、负 z,并省略任何缺失人脸。 每个人脸都用其主图像写入,后跟任何 mipmap 级别。
例如,具有正 x、负 y 和正 z 人脸的 256 by-256 多维数据集映射、DXT1 的像素格式以及所有 mipmap 级别将包含以下内容:
DDS 组件 | # 字节数 |
---|---|
页眉 | 128 |
256×256 正 x 主图像 | 32768 |
128×128 正 x mipmap 图像 | 8192 |
64×64 正 x mipmap 图像 | 2048 |
32×32 正 x mipmap 图像 | 512 |
16×16 正 x mipmap 图像 | 128 |
8×8 正 x mipmap 图像 | 32 |
4×4 正 x mipmap 图像 | 8 |
2×2 正 x mipmap 图像 | 8 |
1-by-1 正 x mipmap 图像 | 8 |
为 y mipmap 图像重复前 9 层 | 43704 |
对 z mipmap 图像重复前 9 层 | 43704 |
从 DirectX 8 开始,多维数据集映射以定义的所有人脸进行存储。
DXGI 多维数据集映射
Direct3D 10.x 和 Direct3D 11 中的立方环境地图等效于具有 6 个图像的 2D 纹理数组,并且可以存储在 DDS 文件中,例如。 借助 Direct3D 10.1 和 Direct3D 11,硬件还可以支持多维数据集贴图数组,这些多维数据集图本身是具有 6 个图像的倍数(6、12、18、24 等)。
例如,下面是一个 256 by-256 多维数据集地图,其 mipmap 级别以 BC6H 格式存储为 2D 纹理数组:
DDS 组件 | # 字节数 |
---|---|
标头 (“DX10”的 FourCC) | 128 |
扩展标头(DXGI 格式设置为 95 [DXGI_FORMAT_BC6H_UF16],维度值为 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D],数组大小为 1,0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) | 20 |
256 by-256 数组输入 0 (正 x) 主图像 | 65536 |
128 by-128 数组条目 0 (正 x) mipmap 图像 | 16384 |
64×64 数组条目 0 (正 x) mipmap 图像 | 4096 |
32×32 数组条目 0 (正 x) mipmap 图像 | 1024 |
16×16 数组条目 0 (正 x) mipmap 图像 | 256 |
8×8 数组条目 0 (正 x) mipmap 图像 | 64 |
4×4 数组条目 0 (正 x) mipmap 图像 | 16 |
2×2 数组条目 0 (正 x) mipmap 图像 | 16 |
1-by-1 数组条目 0 (正 x) mipmap 图像 | 16 |
对数组条目 1 (负 x) mipmap 图像重复前 9 层 | 87408 |
重复前 9 层数组条目 2 (正 y) mipmap 图像 | 87408 |
为数组条目 3 (负 y) mipmap 图像重复前 9 层 | 87408 |
为数组条目 4 (正 z) mipmap 图像重复前 9 层 | 87408 |
为数组条目 5 (负 z) mipmap 图像重复前 9 层 | 87408 |
相关主题
-
DDS 的 编程指南