バッファーの種類
バッファー変数を宣言するには、次の構文を使用します。
バッファー<の種類>名。 |
---|
パラメーター
-
バッファー
-
必須のキーワード (keyword)。
-
型
-
スカラー、ベクター、および一部のマトリックス HLSL 型の 1 つ。 4 つの 32 ビットの数量に収まる限り、行列を使用してバッファー変数を宣言できます。 そのため、 を記述
Buffer<float2x2>
できます。 がBuffer<float4x4>
大きすぎるため、コンパイラによってエラーが生成されます。 -
名前
-
変数名を一意に識別する ASCII 文字列。
例
バッファー宣言の例を次に示します。
Buffer<float4> g_Buffer;
データは、1 つの入力パラメーター (整数インデックス) を受け取る Load HLSL 組み込み関数のオーバーロードされたバージョンを使用してバッファーから読み取られます。 バッファーには、要素の配列のようにアクセスされます。したがって、この例では 2 番目の要素を読み取ります。
float4 bufferData = g_Buffer.Load( 1 );
ストリーム出力ステージを使用して、データをバッファーに出力します。
注釈
バッファーから正しく読み込むには、互換性のある型指定されたバッファー シェーダー リソース ビュー (SRV) が必要です。 読み込みでは、必要に応じて型変換を実行できます。たとえば、 RGBA8_UNORM バッファーを float4
変数に読み込むことができます。 バッファー contaning 構造体の場合は、代わりに StructuredBuffer を 使用します。