DXGI_FORMAT

完全に型付けされたフォーマットと型のないフォーマットを含むリソース データ フォーマットです。このページの下部にはフォーマット修飾子の一覧があり、それぞれのフォーマット タイプについてさらに詳しく説明します。

typedef enum DXGI_FORMAT
{
    DXGI_FORMAT_UNKNOWN = 0,
    DXGI_FORMAT_R32G32B32A32_TYPELESS = 1,
    DXGI_FORMAT_R32G32B32A32_FLOAT = 2,
    DXGI_FORMAT_R32G32B32A32_UINT = 3,
    DXGI_FORMAT_R32G32B32A32_SINT = 4,
    DXGI_FORMAT_R32G32B32_TYPELESS = 5,
    DXGI_FORMAT_R32G32B32_FLOAT = 6,
    DXGI_FORMAT_R32G32B32_UINT = 7,
    DXGI_FORMAT_R32G32B32_SINT = 8,
    DXGI_FORMAT_R16G16B16A16_TYPELESS = 9,
    DXGI_FORMAT_R16G16B16A16_FLOAT = 10,
    DXGI_FORMAT_R16G16B16A16_UNORM = 11,
    DXGI_FORMAT_R16G16B16A16_UINT = 12,
    DXGI_FORMAT_R16G16B16A16_SNORM = 13,
    DXGI_FORMAT_R16G16B16A16_SINT = 14,
    DXGI_FORMAT_R32G32_TYPELESS = 15,
    DXGI_FORMAT_R32G32_FLOAT = 16,
    DXGI_FORMAT_R32G32_UINT = 17,
    DXGI_FORMAT_R32G32_SINT = 18,
    DXGI_FORMAT_R32G8X24_TYPELESS = 19,
    DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20,
    DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,
    DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
    DXGI_FORMAT_R10G10B10A2_TYPELESS = 23,
    DXGI_FORMAT_R10G10B10A2_UNORM = 24,
    DXGI_FORMAT_R10G10B10A2_UINT = 25,
    DXGI_FORMAT_R11G11B10_FLOAT = 26,
    DXGI_FORMAT_R8G8B8A8_TYPELESS = 27,
    DXGI_FORMAT_R8G8B8A8_UNORM = 28,
    DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29,
    DXGI_FORMAT_R8G8B8A8_UINT = 30,
    DXGI_FORMAT_R8G8B8A8_SNORM = 31,
    DXGI_FORMAT_R8G8B8A8_SINT = 32,
    DXGI_FORMAT_R16G16_TYPELESS = 33,
    DXGI_FORMAT_R16G16_FLOAT = 34,
    DXGI_FORMAT_R16G16_UNORM = 35,
    DXGI_FORMAT_R16G16_UINT = 36,
    DXGI_FORMAT_R16G16_SNORM = 37,
    DXGI_FORMAT_R16G16_SINT = 38,
    DXGI_FORMAT_R32_TYPELESS = 39,
    DXGI_FORMAT_D32_FLOAT = 40,
    DXGI_FORMAT_R32_FLOAT = 41,
    DXGI_FORMAT_R32_UINT = 42,
    DXGI_FORMAT_R32_SINT = 43,
    DXGI_FORMAT_R24G8_TYPELESS = 44,
    DXGI_FORMAT_D24_UNORM_S8_UINT = 45,
    DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46,
    DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47,
    DXGI_FORMAT_R8G8_TYPELESS = 48,
    DXGI_FORMAT_R8G8_UNORM = 49,
    DXGI_FORMAT_R8G8_UINT = 50,
    DXGI_FORMAT_R8G8_SNORM = 51,
    DXGI_FORMAT_R8G8_SINT = 52,
    DXGI_FORMAT_R16_TYPELESS = 53,
    DXGI_FORMAT_R16_FLOAT = 54,
    DXGI_FORMAT_D16_UNORM = 55,
    DXGI_FORMAT_R16_UNORM = 56,
    DXGI_FORMAT_R16_UINT = 57,
    DXGI_FORMAT_R16_SNORM = 58,
    DXGI_FORMAT_R16_SINT = 59,
    DXGI_FORMAT_R8_TYPELESS = 60,
    DXGI_FORMAT_R8_UNORM = 61,
    DXGI_FORMAT_R8_UINT = 62,
    DXGI_FORMAT_R8_SNORM = 63,
    DXGI_FORMAT_R8_SINT = 64,
    DXGI_FORMAT_A8_UNORM = 65,
    DXGI_FORMAT_R1_UNORM = 66,
    DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67,
    DXGI_FORMAT_R8G8_B8G8_UNORM = 68,
    DXGI_FORMAT_G8R8_G8B8_UNORM = 69,
    DXGI_FORMAT_BC1_TYPELESS = 70,
    DXGI_FORMAT_BC1_UNORM = 71,
    DXGI_FORMAT_BC1_UNORM_SRGB = 72,
    DXGI_FORMAT_BC2_TYPELESS = 73,
    DXGI_FORMAT_BC2_UNORM = 74,
    DXGI_FORMAT_BC2_UNORM_SRGB = 75,
    DXGI_FORMAT_BC3_TYPELESS = 76,
    DXGI_FORMAT_BC3_UNORM = 77,
    DXGI_FORMAT_BC3_UNORM_SRGB = 78,
    DXGI_FORMAT_BC4_TYPELESS = 79,
    DXGI_FORMAT_BC4_UNORM = 80,
    DXGI_FORMAT_BC4_SNORM = 81,
    DXGI_FORMAT_BC5_TYPELESS = 82,
    DXGI_FORMAT_BC5_UNORM = 83,
    DXGI_FORMAT_BC5_SNORM = 84,
    DXGI_FORMAT_B5G6R5_UNORM = 85,
    DXGI_FORMAT_B5G5R5A1_UNORM = 86,
    DXGI_FORMAT_B8G8R8A8_UNORM = 87,
    DXGI_FORMAT_B8G8R8X8_UNORM = 88,
    DXGI_FORMAT_FORCE_UINT = 0xffffffffUL,
} DXGI_FORMAT, *LPDXGI_FORMAT;

定数

DXGI_FORMAT_UNKNOWN
フォーマットが不明です。
DXGI_FORMAT_R32G32B32A32_TYPELESS
4 成分、128 ビット型なしフォーマットです。 1
DXGI_FORMAT_R32G32B32A32_FLOAT
4 成分、128 ビット浮動小数点フォーマットです。 1
DXGI_FORMAT_R32G32B32A32_UINT
4 成分、128 ビット符号なし整数フォーマットです。 1
DXGI_FORMAT_R32G32B32A32_SINT
4 成分、128 ビット符号付き整数フォーマットです。 1
DXGI_FORMAT_R32G32B32_TYPELESS
3 成分、96 ビット型なしフォーマットです。
DXGI_FORMAT_R32G32B32_FLOAT
3 成分、96 ビット浮動小数点フォーマットです。
DXGI_FORMAT_R32G32B32_UINT
3 成分、96 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R32G32B32_SINT
3 成分、96 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R16G16B16A16_TYPELESS
4 成分、64 ビット型なしフォーマットです。
DXGI_FORMAT_R16G16B16A16_FLOAT
4 成分、64 ビット浮動小数点フォーマットです。
DXGI_FORMAT_R16G16B16A16_UNORM
4 成分、64 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R16G16B16A16_UINT
4 成分、64 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R16G16B16A16_SNORM
4 成分、64 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R16G16B16A16_SINT
4 成分、64 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R32G32_TYPELESS
2 成分、64 ビット型なしフォーマットです。
DXGI_FORMAT_R32G32_FLOAT
2 成分、64 ビット浮動小数点フォーマットです。
DXGI_FORMAT_R32G32_UINT
2 成分、64 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R32G32_SINT
2 成分、64 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R32G8X24_TYPELESS
2 成分、64 ビット型なしフォーマットです。
DXGI_FORMAT_D32_FLOAT_S8X24_UINT
32 ビット浮動小数点成分、および 2 つの符号なし整数成分です (追加の 32 ビットを含みます)。
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS
32 ビット浮動小数点成分、および 2 つの型なし成分です (追加の 32 ビットを含みます)。
DXGI_FORMAT_X32_TYPELESS_G8X24_UINT
32 ビット型なし成分、および 2 つの符号なし整数成分です (追加の 32 ビットを含みます)。
DXGI_FORMAT_R10G10B10A2_TYPELESS
4 成分、32 ビット型なしフォーマットです。
DXGI_FORMAT_R10G10B10A2_UNORM
4 成分、32 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R10G10B10A2_UINT
4 成分、32 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R11G11B10_FLOAT
3 成分、32 ビット浮動小数点フォーマットです。
DXGI_FORMAT_R8G8B8A8_TYPELESS
3 成分、32 ビット型なしフォーマットです。
DXGI_FORMAT_R8G8B8A8_UNORM
4 成分、32 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
4 成分、32 ビット符号なし正規化整数 sRGB フォーマットです。
DXGI_FORMAT_R8G8B8A8_UINT
4 成分、32 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R8G8B8A8_SNORM
3 成分、32 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R8G8B8A8_SINT
3 成分、32 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R16G16_TYPELESS
2 成分、32 ビット型なしフォーマットです。
DXGI_FORMAT_R16G16_FLOAT
2 成分、32 ビット浮動小数点フォーマットです。
DXGI_FORMAT_R16G16_UNORM
2 成分、32 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R16G16_UINT
2 成分、32 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R16G16_SNORM
2 成分、32 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R16G16_SINT
2 成分、32 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R32_TYPELESS
1 成分、32 ビット型なしフォーマットです。
DXGI_FORMAT_D32_FLOAT
1 成分、32 ビット浮動小数点フォーマットです。
DXGI_FORMAT_R32_FLOAT
1 成分、32 ビット浮動小数点フォーマットです。
DXGI_FORMAT_R32_UINT
1 成分、32 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R32_SINT
1 成分、32 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R24G8_TYPELESS
2 成分、32 ビット型なしフォーマットです。
DXGI_FORMAT_D24_UNORM_S8_UINT
深度チャンネルに 24 ビット、ステンシル チャンネルに 8 ビットを使用する 32 ビット Z バッファー フォーマットです。
DXGI_FORMAT_R24_UNORM_X8_TYPELESS
1 成分、24 ビット符号なし正規化整数と追加の型なし 8 ビットを含む、32 ビット フォーマットです。
DXGI_FORMAT_X24_TYPELESS_G8_UINT
1 成分、24 ビット型なしフォーマットと追加の 8 ビット符号なし整数成分を含む、32 ビット フォーマットです。
DXGI_FORMAT_R8G8_TYPELESS
2 成分、16 ビット型なしフォーマットです。
DXGI_FORMAT_R8G8_UNORM
2 成分、16 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R8G8_UINT
2 成分、16 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R8G8_SNORM
2 成分、16 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R8G8_SINT
2 成分、16 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R16_TYPELESS
1 成分、16 ビット型なしフォーマットです。
DXGI_FORMAT_R16_FLOAT
1 成分、16 ビット浮動小数点フォーマットです。
DXGI_FORMAT_D16_UNORM
1 成分、16 ビット符号なし正規化整数フォーマットです。
DXGI_FORMAT_R16_UNORM
1 成分、16 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R16_UINT
1 成分、16 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R16_SNORM
1 成分、16 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R16_SINT
1 成分、16 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R8_TYPELESS
1 成分、8 ビット型なしフォーマットです。
DXGI_FORMAT_R8_UNORM
1 成分、8 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R8_UINT
1 成分、8 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R8_SNORM
1 成分、8 ビット符号付き整数フォーマットです。
DXGI_FORMAT_R8_SINT
1 成分、8 ビット符号付き整数フォーマットです。
DXGI_FORMAT_A8_UNORM
1 成分、8 ビット符号なし整数フォーマットです。
DXGI_FORMAT_R1_UNORM
1 成分、1 ビット符号なし正規化整数フォーマットです。 2.
DXGI_FORMAT_R9G9B9E5_SHAREDEXP
4 成分、32 ビット浮動小数点フォーマットです。 2.
DXGI_FORMAT_R8G8_B8G8_UNORM
4 成分、32 ビット符号なし正規化整数フォーマットです。 3
DXGI_FORMAT_G8R8_G8B8_UNORM
4 成分、32 ビット符号なし正規化整数フォーマットです。 3
DXGI_FORMAT_BC1_TYPELESS
4 成分、型なしブロック圧縮フォーマットです。
DXGI_FORMAT_BC1_UNORM
4 成分、ブロック圧縮フォーマットです。
DXGI_FORMAT_BC1_UNORM_SRGB
sRGB データ用の 4 成分、ブロック圧縮フォーマットです。
DXGI_FORMAT_BC2_TYPELESS
4 成分、型なしブロック圧縮フォーマットです。
DXGI_FORMAT_BC2_UNORM
4 成分、ブロック圧縮フォーマットです。
DXGI_FORMAT_BC2_UNORM_SRGB
sRGB データ用の 4 成分、ブロック圧縮フォーマットです。
DXGI_FORMAT_BC3_TYPELESS
4 成分、型なしブロック圧縮フォーマットです。
DXGI_FORMAT_BC3_UNORM
4 成分、ブロック圧縮フォーマットです。
DXGI_FORMAT_BC3_UNORM_SRGB
sRGB データ用の 4 成分、ブロック圧縮フォーマットです。
DXGI_FORMAT_BC4_TYPELESS
1 成分、型なしブロック圧縮フォーマットです。
DXGI_FORMAT_BC4_UNORM
1 成分、ブロック圧縮フォーマットです。
DXGI_FORMAT_BC4_SNORM
1 成分、ブロック圧縮フォーマットです。
DXGI_FORMAT_BC5_TYPELESS
2 成分、型なしブロック圧縮フォーマットです。
DXGI_FORMAT_BC5_UNORM
2 成分、ブロック圧縮フォーマットです。
DXGI_FORMAT_BC5_SNORM
2 成分、ブロック圧縮フォーマットです。
DXGI_FORMAT_B5G6R5_UNORM
3 成分、16 ビット符号なし正規化整数フォーマットです。
DXGI_FORMAT_B5G5R5A1_UNORM
1 ビット アルファをサポートする 4 成分、16 ビット符号なし正規化整数フォーマットです。
DXGI_FORMAT_B8G8R8A8_UNORM
8 ビット アルファをサポートする 4 成分、16 ビット符号なし正規化整数フォーマットです。
DXGI_FORMAT_B8G8R8X8_UNORM
4 成分、16 ビット符号なし正規化整数フォーマットです。
DXGI_FORMAT_FORCE_UINT
コンパイル時に、この列挙型のサイズを 32 ビットにするために定義されています。この値を指定しない場合、一部のコンパイラでは列挙型を 32 ビット以外のサイズでコンパイル可能です。この定数が使用されることはありません。

解説 

一部のフォーマットには追加の制限があります。

  1. DXGI_FORMAT_R32G32B32 ファミリのフォーマットで宣言されたリソースを頂点およびテクスチャー データに同時に使用することはできません。つまり、DXGI_FORMAT_R32G32B32 ファミリのフォーマットで、次のバインド フラグのいずれかを使用するバッファー リソースを作成することはできません。それらは、D3D10_BIND_VERTEX_BUFFER、D3D10_BIND_INDEX_BUFFER、D3D10_BIND_CONSTANT_BUFFER、および D3D10_BIND_STREAM_OUTPUT です (「D3D10_BIND_FLAG」を参照してください)。
  2. DXGI_FORMAT_R1_UNORM はテキスト フィルタリング専用に設計されており、フォーマット固有の構成可能な 8x8 フィルター モードで使用する必要があります。このフォーマットを使用して HLSL サンプリング関数を呼び出すときは、アドレス オフセット パラメーターを (0,0) に設定する必要があります。
  3. サブサンプリング フォーマット (DXGI_FORMAT_R8G8_B8G8 など) を使用するリソースは、x 方向に 2 の倍数のサイズでなければなりません。
フォーマット修飾子

各列挙値には、データ型を表すフォーマット修飾子が含まれています。

フォーマット修飾子説明
_FLOAT浮動小数点値です。シェーダーでは 32 ビット浮動小数点値として解釈され、リソースでは、フォーマットと一致するビット深度として解釈されます。
_SINT2 の補数の符号付き整数です。たとえば、3 ビットの SINT は、-4、-3、-2、-1、0、1、2、3 の値を表します。
_SNORM符号付き正規化整数です。リソースでは符号付き整数として解釈され、シェーダーでは、[-1, 1] の範囲の符号付き正規化浮動小数点値として解釈されます。2 の補数の場合、最大値は 1.0f で (5 ビット値 01111 は 1.0f にマップされます)、最小値は -1.0f です (5 ビット値 10000 は -1.0f にマップされます)。さらに、次に少ない数値が -1.0f にマップされます (5 ビット値 10001 は -1.0f にマップされます)。結果の整数表現は、-1.0f ~ 0.0f の範囲では均等な間隔の浮動小数点値であると同時に、0.0f ~ 1.0f の範囲では数値表現の補足セットでもあります。
_SRGB標準 RGB データです。直線的な傾斜の輝度レベルでカラーが大まかに表示されるため、平均的な視聴者が、平均的な表示条件下で、平均的なディスプレイでカラーを表示できます。

すべての桁が 0 の場合は 0.0f にマップされ、すべての桁が 1 の場合は 1.0f にマップされます。すべての桁が 0 からすべての桁が 1 までの符号なし整数エンコードのシーケンスは、0.0f ~ 1.0f の数値の浮動小数点解釈で非線形的な数列を表します。詳細については、IEC (国際電気標準会議) の SGRB カラー規格である IEC 61996-2-1 を参照してください。

sRGB 空間との間の変換は、D3DX10 または D3DX9 のテクスチャー ロード関数によって自動的に実行されます。フォーマットにアルファ チャンネルがある場合、アルファ データも sRGB カラー空間に格納されます。
_TYPELESS定義されたビット数の型なしデータです。型なしフォーマットは、型なしリソースの作成を目的として設計されています。型なしリソースとは、サイズは特定されているものの、データ型が完全には定義されていないリリソースです。型なしリソースをシェーダーにバインドするとき、アプリケーションまたはシェーダーでは、フォーマットの型を解決する必要があります (フォーマットの型は、型なしフォーマットの成分ごとのビット数と一致する必要があります)。

型なしフォーマットには 1 つまたは複数のサブフォーマットがあり、各サブフォーマットによってデータ型が解決されます。たとえば、3 成分の 96 ビット データの型を定義する R32G32B32 グループには、型なしのフォーマットが 1 つと完全に片付けされたサブフォーマットが 3 つあります。


    DXGI_FORMAT_R32G32B32_TYPELESS,
    DXGI_FORMAT_R32G32B32_FLOAT,
    DXGI_FORMAT_R32G32B32_UINT,
    DXGI_FORMAT_R32G32B32_SINT,

_UINT符号なし整数です。たとえば、3 ビットの UINT は、0、1、2、3、4、5、6、7 の値を表します。
_UNORM符号なし正規化整数です。リソースでは符号なし整数として解釈され、シェーダーでは、[0, 1] の範囲の符号なし正規化浮動小数点値として解釈されます。すべての桁が 0 の場合は 0.0f にマップされ、すべての桁が 1 の場合は 1.0f にマップされます。0.0f ~ 1.0f の均等な間隔の一連の浮動小数点値が表されます。たとえば、2 ビットの UNORM は、0.0f、1/3、2/3、および 1.0f を表します。
新しいリソース フォーマット

Direct3D 10 では、高ダイナミック レンジ (HDR) のライティング データ、法線マップ、および高さフィールドを圧縮して元のサイズよりも縮小するための新しいデータ圧縮フォーマットが提供されています。これらの圧縮には、次のような種類があります。

  • 共有指数高ダイナミック レンジ (HDR) フォーマット (RGBE)
  • 新しいブロック圧縮 1-2 チャネル UNORM/SNORM フォーマット

ブロック圧縮フォーマットは、ミップマップ サーフェスを含む任意の 2D または 3D テクスチャー タイプ (Texture2D、Texture2DArray、Texture3D、または TextureCube) に使用可能です。ブロック圧縮の手法では、テクスチャーのサイズが 4 の倍数でなければなりません (実装によって 4x4 テクセルのブロックで圧縮されるためです)。テクスチャー サンプラーでは、常に、圧縮されたフォーマットがテクスチャー フィルタリングの前に圧縮解除されます。

要件

ヘッダー: DXGI.h 宣言

関連項目

DXGI の列挙型

表示: