ストリーム出力オブジェクト (DirectX HLSL)
ストリーム出力オブジェクトは、ジオメトリ シェーダー ステージからストリームにデータを出力するテンプレート化されたオブジェクトです。ストリーム出力オブジェクトを宣言するには、次の構文を使用します。
inout StreamOutputObject<DataType> Name; |
---|
パラメーター
StreamOutputObject<DataType> Name
ストリーム出力オブジェクト (SO) 宣言。ストリーム出力オブジェクトの型 説明 PointStream ポイント プリミティブのシーケンス LineStream ライン プリミティブのシーケンス TriangleStream トライアングル プリミティブのシーケンス DataType - 出力データ型。任意の HLSL データ型を指定できます。山かっこ内に記述する必要があります。
Name - 変数名。オブジェクトを一意に識別する ASCII 文字列。
例
次に、ストリーム出力オブジェクト宣言の例を示します。PS_CUBEMAP_IN 構造体によって定義されたデータを持つトライアングル プリミティブをストリームに出力します。ジオメトリ シェーダーは、生成できる頂点数が 18 個に制限されています。
struct PS_CUBEMAP_IN { float4 Pos : SV_POSITION; // Projection coord float2 Tex : TEXCOORD0; // Texture coord uint RTIndex : SV_RenderTargetArrayIndex; }; [maxvertexcount(18)] inout TriangleStream<PS_CUBEMAP_IN> CubeMapStream;
上記のコードは、「CubeMapGS サンプル」から抜粋したものです。
ストリーム出力オブジェクト メソッド
ストリーム出力オブジェクト メソッドを呼び出すには、次の構文を使用します。
Object.Method
用意されているメソッドは以下のとおりです。
メソッド | 説明 |
---|---|
Append | 出力データを既存のストリームに追加します。 |
RestartStrip | 現在のプリミティブ ストリップを終了して、新しいプリミティブ ストリップを開始します。 |
最低限必要なシェーダー モデル
このオブジェクトは、次のシェーダー モデルでサポートされています。
シェーダー モデル | サポート |
---|---|
シェーダー モデル 4 以降のシェーダー モデル | ○ |