ジオメトリ シェーダー オブジェクト (DirectX HLSL)

[maxvertexcount(NumVerts)]

void ShaderName (

  PrimitiveType DataType Name [ NumElements ],

  inout StreamOutputObject

  );

パラメーター

  • [maxvertexcount(NumVerts)]
    [in] 作成する頂点の最大数の宣言です。

    • [maxvertexcount()] - 必須のキーワードです。正しい構文とするために、山かっこと丸かっこを必ず記述します。
    • NumVerts - 頂点の数を表す整数です。
  • ShaderName
    [in] ジオメトリ シェーダー関数の一意の名前を含む ASCII 文字列。

  • PrimitiveType DataType Name [ NumElements ]
    PrimitiveType - プリミティブ型。プリミティブ データの順序を決定します。

    プリミティブの種類 説明
    point ポイント リスト
    line ライン リストまたはライン ストリップ
    triangle トライアングル リストまたはトライアングル ストリップ
    lineadj 隣接性のあるライン リストまたは隣接性のあるライン ストリップ
    triangleadj 隣接性のあるトライアングル リストまたは隣接性のあるトライアングル ストリップ

    DataType - [in] 入力データ型。任意の HLSL データ型を指定できます。

    Name - ASCII 文字列の引数名。引数が配列の場合は、NumElements で配列サイズを任意に指定できます。

  • StreamOutputObject
    ストリーム出力オブジェクトの宣言。

戻り値

なし

次の例は、「Direct3D 10 シェーダー モデル 4.0 ワークショップ」の演習 1 から抜粋したものです。

 [maxvertexcount(3)] void GSScene( triangleadj GSSceneIn input[6], inout TriangleStream<PSSceneIn> OutputStream ) {        PSSceneIn output = (PSSceneIn)0;      for( uint i=0; i<6; i+=2 )     {         output.Pos = input[i].Pos;         output.Norm = input[i].Norm;         output.Tex = input[i].Tex;                OutputStream.Append( output );     }        OutputStream.RestartStrip(); } 

最低限必要なシェーダー モデル

このオブジェクトは、次のシェーダー モデルでサポートされています。

シェーダー モデル サポート
シェーダー モデル 4 以降のシェーダー モデル