DDS 体积纹理示例

对于卷纹理,请使用 DDSCAPS_COMPLEXDDSCAPS2_VOLUMEDDSD_DEPTH标志,并设置 dwDepth。 体积纹理是 Direct3D 9 的标准纹理的扩展;可以使用或不使用 mipmap 定义体积纹理。

对于没有 mipmap 的卷,每个深度切片将按顺序写入文件。 如果包含 mipmap,则给定 mipmap 级别的所有深度切片将一起写入,每个级别包含的切片数是上一个级别至少为 1 的一半。

例如,使用 R8G8B8 像素格式的 64 x 64 x 4 卷映射 (每个像素 3 个字节,) 所有 mipmap 级别将包含以下内容:

DDS 组件 # 字节数
标头的值开始缓存响应 128 字节
64 乘 64 切片 1,共 4 张main图像。 12288 字节
64 乘 64 切片 2,共 4 张main图像。 12288 字节
64 乘 64 切片 3,共 4 张main图像。 12288 字节
64 乘 64 切片 4/4 main图像。 12288 字节
2 个 mipmap 图像的 32 乘以 32 切片 1。 3072 字节
2 个 mipmap 图像的 32 by 32 切片 2。 3072 字节
16-by-16 切片 1,共 1 个 mipmap 图像。 768 字节
8-by-8 切片 1,共 1 个 mipmap 图像。 192 字节
1 个 mipmap 图像的 4 乘 4 切片 1。 48 字节
1 个 mipmap 图像的 2 乘 2 切片 1。 12 字节
1 个 mipmap 图像的 1 乘 1 切片。 3 个字节

 

请注意,最小的 mipmap 级别只有 3 个字节,因为位计数为 24,并且此级别没有添加压缩。

DirectX 8 中添加了对体积纹理的支持。

DDS 编程指南