BC7 格式模式参考

本文档包含 BC7 纹理压缩格式块的 8 种块模式和位分配的列表。

块内的每个子集的颜色由两个显式终结点颜色和它们之间的一组内插颜色表示。 根据块的索引精度,每个子集可以具有 4 种、8 种或 16 种可能的颜色。

模式 0

BC7 模式 0 具有以下特征:

  • 仅颜色分量(无 alpha)
  • 每个块 3 个子集
  • 每个终结点有一个唯一的 P 位的 RGBP 4.4.4.1 终结点
  • 3 位索引
  • 16 个分区

模式 0 位布局

模式 1

BC7 模式 1 具有以下特征:

  • 仅颜色分量(无 alpha)
  • 每个块 2 个子集
  • 每个子集有一个共享 P 位的 RGBP 6.6.6.1 终结点)
  • 3 位索引
  • 64 个分区

模式 1 位布局

模式 2

BC7 模式 2 具有以下特征:

  • 仅颜色分量(无 alpha)
  • 每个块 3 个子集
  • RGB 5.5.5 终结点
  • 2 位索引
  • 64 个分区

模式 2 位布局

模式 3

BC7 模式 3 具有以下特征:

  • 仅颜色分量(无 alpha)
  • 每个块 2 个子集
  • 每个子集有一个唯一 P 位的 RGBP 7.7.7.1 终结点)
  • 2 位索引
  • 64 个分区

模式 3 位布局

模式 4

BC7 模式 4 具有以下特征:

  • 具有单独的 alpha 分量的颜色分量
  • 每个块 1 个子集
  • RGB 5.5.5 颜色终结点
  • 6 位 alpha 终结点
  • 16 x 2 位索引
  • 16 x 3 位索引
  • 2 位分量旋转
  • 1 位索引选择器(无论是使用 2 位索引还是 3 位索引)

模式 4 位布局

模式 5

BC7 模式 5 具有以下特征:

  • 具有单独的 alpha 分量的颜色分量
  • 每个块 1 个子集
  • RGB 7.7.7 颜色终结点
  • 8 位 alpha 终结点
  • 16 x 2 位颜色索引
  • 16 x 2 位 alpha 索引
  • 2 位分量旋转

模式 5 位布局

模式 6

BC7 模式 6 具有以下特征:

  • 组合的颜色和 alpha 分量
  • 每个块一个子集
  • RGBAP 7.7.7.7.1 颜色(和 alpha)终结点(每个终结点一个唯一的 P 位)
  • 16 x 4 位索引

模式 6 位布局

模式 7

BC7 模式 7 具有以下特征:

  • 组合的颜色和 alpha 分量
  • 每个块 2 个子集
  • RGBAP 5.5.5.5.1 颜色(和 alpha)终结点(每个终结点一个唯一的 P 位)
  • 2 位索引
  • 64 个分区

模式 7 位布局

备注

模式 8(最低有效字节设置为 0x00)会被保留。 请勿在你的编码器中使用此模式。 如果你将此模式传递给硬件,则会返回初始化为全部零的一个块。

在 BC7 中,你可以使用以下方式之一编码 alpha 分量:

  • 未进行显式 alpha 分量编码的块类型。 在这些块中,颜色终结点有一个仅 RGB 编码,并且对于所有纹素,alpha 分量被解码为 1.0。

  • 具有组合的颜色和 alpha 分量的块类型。 在这些块中,终结点颜色值是用 RGBA 格式指定的,而 alpha 分量值会与颜色值一起以内插值替换。

  • 具有单独的颜色和 alpha 分量的块类型。 在这些块中,颜色和 alpha 值是单独指定的,每个都有它们自己的索引集。 因此,它们具有单独编码的有效向量和标量通道,其中向量通常指定颜色通道 [R、G、B],而标量指定 alpha 通道 [A]。 为支持此方法,在编码中会提供一个单独的 2 位字段,该字段允许将单独通道编码指定为一个标量值。 因此,块可以具有此 alpha 编码的以下四种不同表示之一(由 2 位字段指示):

    • RGB|A:单独的 alpha 通道
    • AGB|R:单独的“红”色通道
    • RAB|G:单独的“绿”色通道
    • RGA|B:单独的“蓝”色通道

    解码器在解码之后将通道顺序重新排序回到 RGBA,这样,内部块格式会对于开发者不可见。 具有单独颜色和 alpha 分量的块也有两组索引数据:一组用于矢量通道,另一组用于标量通道。 (对于模式 4,这些索引的宽度 [2 或 3 位] 不同。模式 4 还包含一个 1 位选择器,该选择器指定向量还是标量通道使用 3 位索引。)

BC7 格式