(Direct3D 9) 压缩纹理格式

此部分包含有关压缩纹理格式的内部组织的信息。 使用压缩纹理不需要这些详细信息,因为可以使用 D3DX 函数与压缩格式进行转换。 但是,如果你想要直接处理压缩的曲面数据,则此信息很有用。

Direct3D 使用将纹理贴图分为 4 x 4 纹素块的压缩格式。 如果纹理无透明度(不透明)或透明度由 1 位 alpha 指定,则使用 8 字节块表示纹理贴图块。 如果纹理贴图包含透明纹素并使用 alpha 通道,则使用 16 位块表示它。

任何一个纹理必须指定其数据存储为 64 位还是 128 位(每个 16 纹素组)。 如果纹理使用 64 位块(即格式 DXT1),则在同一纹理中基于每个块混合不透明和 1 位 alpha 格式。 换言之,分别为每个 16 纹素块比较 color_0 和 color_1 的无符号整数度量值。

使用 128 位块时,必须使用显式 (格式 DXT2 或 DXT3) 或内插模式指定 alpha 通道, (整个纹理的 DXT4 或 DXT5) 格式。 与颜色一样,选择内插模式时,块可以使用八个内插 alpha 模式或六个内插 alpha 模式。 同样,分别为每个块比较 alpha_0 和 alpha_1 的度量值。

DXTn 格式的音调不同于 DirectX 7.0 中返回的内容。 音调现在以字节为单位,而不是块 () 。 例如,如果宽度为 16,则 DXT1 (的间距为 4*8,DXT2-5) 的间距为 4*4*16。

压缩的纹理资源