DirectX12纹理格式

DirectX12纹理格式

2D 纹理(2D texture)是一种由数据元素构成的矩阵,

纹理数据格式

纹理只能存储DXGI_FORMAT枚举类型中描述的特定格式的数据元素

  • DXGI_FORMAT_R32G32B32_FLOAT:每个元素由3个32位浮点数分量构成 RGB各32位
  • DXGI_FORMAT_R16G16B16A16_UNORM:每个元素由4个16位分量构成,每个分量都被映射到[0, 1]区间。RGBA各16位
  • DXGI_FORMAT_R32G32_UINT:每个元素由2个32位无符号整数分量构成。RG各32位
  • DXGI_FORMAT_R8G8B8A8_UNORM:每个元素由4个8位无符号分量构成,每个分量都被映射到[0, 1]区间。RGBA各8位
  • DXGI_FORMAT_R8G8B8A8_SNORM:每个元素由4个8位有符号分量构成,每个分量都被映射到[-1, 1]区间。
  • DXGI_FORMAT_R8G8B8A8_SINT:每个元素由4个8位有符号整数分量构成,每个分量都被映射到[-128, 127]区间。
  • DXGI_FORMAT_R8G8B8A8_UINT:每个元素由4个8位无符号整数分量构成,每个分量都被映射到[0, 255]区间。
  • DXGI_FORMAT_R16G16B16A16_TYPELESS:无类型格式保留的是由4个16位分量组成的元素,但并没有指出数据的具体类型。我们仅用它来预留内存,待纹理被绑定到渲染流水线再具体解释它的数据类型。

用途

  • 用途之一是存储2D图像数据,这种情况下,纹理中每个元素存储的都是一个像素的颜色

  • 法线贴图(normal mapping),纹理内的每个元素存储的就是一个3D 向量。
    例如,格式DXGI_FORMAT_R32G32B32_FLOAT中含有3个浮点数分量,因此可以利用坐标格式为浮点数的方式存储任意3D向量。

纹理的mipmap层级

你可能感兴趣的:(图形渲染)