2

ビデオを参照してください。

私のアプリケーションでは、GL_LINE_STRIP を使用して作成された DisplayList を使用して輪郭のスタックを表示します。

ユーザーは、マウスを使用して等高線を選択できます。そのために、DisplayList をレンダリングする前に、一意の色を使用してすべての輪郭をレンダリングし、マウスの下のピクセル色を読み取ります (ここで説明されているように)。このレンダリングは、「即時モード」を使用して行われます。

ユーザーは、選択した輪郭を移動、削除することもできます。その場合、DisplayList を再生成します。

私の質問は次のとおりです。

1) 古い OpenGL 技術を使用しています (固定パイプライン アーキテクチャ)。新しい OpenGL 技術を使用してパフォーマンスを向上させる方法はありますか? (GPU、シェーダーなどを使用) 輪郭の数が多いため、操作がスムーズではありません。

2)輪郭選択のために行われる「即時モード」レンダリングもパフォーマンスパネルだと思います。これを行うより良い方法はありますか?

3) GL_POINTS を使用して、輪郭ノードを点群として表示する必要があります。この場合、GL_POINTS を使用して別の DisplayList を作成する必要がありますか? (つまり、2 つの DisplayLists があることを意味します。1 つはラインを表示するとき、もう 1 つはポイントを表示するとき)?

4

1 に答える 1

2

表示リストから離れて、頂点配列 (VA)または頂点バッファー オブジェクト ( VBO) に切り替えると、かなりの速度向上が得られます。

最初の引数を に変更することで、とを簡単に切り替えることができます。ジオメトリの 2 つのコピーは必要ありません。GL_LINE_STRIPGL_POINTSglDrawArrays()

于 2011-08-25T06:15:02.300 に答える