OpenGL 仕様。言います:
変数
gl_PrimitiveID
には、入力頂点を生成した描画コマンドによって処理されたプリミティブの数が入ります。描画コマンドによって生成された最初のプリミティブには 0 の番号が付けられ、プリミティブ ID カウンターは、個々のポイント、ライン、またはトライアングル プリミティブが処理されるたびにインクリメントされます。プリミティブ再起動インデックスを使用してプリミティブ トポロジを再起動しても、プリミティブ ID カウンターには影響しません。
残念ながら、私にはそれがよくわかりません。
GL_PATCHES
頂点数 = 32で描画呼び出しを行う場合、Tesselation Control シェーダーで32個の頂点すべてがgl_PrimitiveID
= 0になりますか?
テッセレーション コントロール シェーダは引き続きパッチを出力し、パッチは単一のプリミティブです。
このパッチが Tessellation Evaluation シェーダーで三角形としてテッセレーションされる場合、n番目の頂点ごとにgl_PrimitiveID
= n / 3になると仮定するのは正しいですか?
そうでない場合は、それらの値がどうなるかを説明してください。