背景: 基本的にノードとエッジの巨大な 3D グラフを描画するアプリケーションを開発しています。ノードはインスタンス化された立方体として描画され、エッジはGL_LINE
ジオメトリ シェーダーで描画され、三角形のストリップで構成される 3D ボリューム「ライン」に展開されます。現在、エッジを再描画するたびにこの拡張を実行しています。ただし、私のグラフは完全に静的であるため (ノードは移動できないため、エッジも移動できません)、GL_LINE
定義を三角形ストリップに展開する必要があるのは 1 回だけであり、展開された頂点をバッファーにキャプチャし (Tranform Feedback を使用)、そして次に、その時点から、キャプチャされた頂点をglMutliDrawArrays
使用して、プリミティブ タイプの を使用してエッジを描画しますGL_TRIANGLE_STRIP
。
質問:私が描いているこれらのボリューム ラインにはすべて、10 個の頂点が含まれています。ただし、glMultiDrawArrays
基本的に各プリミティブの開始点とカウント (要素単位) を記述する開始インデックスとカウント サイズの配列が必要です。サイズが異なるプリミティブはないため、開始インデックスとカウントの不要なリストを作成することになります。プリミティブ再起動が発生するストライド (要素単位) を単純に指定できるようにする OpenGL が提供する機能はありますか?