ストリーム出力オブジェクト (DirectX HLSL)

ストリーム出力オブジェクトは、ジオメトリ シェーダー ステージからストリームにデータを出力するテンプレート化されたオブジェクトです。ストリーム出力オブジェクトを宣言するには、次の構文を使用します。

inout StreamOutputObject<DataTypeName;

パラメーター

  • StreamOutputObject<DataTypeName
    ストリーム出力オブジェクト (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 以降のシェーダー モデル

関連項目

シェーダー モデル 4