2

コンピュータ ビジョン タスクのために、メッシュのエッジ シルエットの周りで OpenGL レンダリングをサブピクセル サンプリングすることに興味があります。MSAAを使って効率的にやろうと思っています(ただし、アプリケーションはアンチエイリアス用ではありません)。マルチサンプリングで私が見つけた問題は、GPU からサンプルを読み取るために、フレームバッファを非マルチサンプリングにしかブリットできないため、個々のサンプル情報を復元できないことです。私の質問は次のとおりです。

  • サンプルごとの (GL_SAMPLE_SHADING) 計算の結果を格納するフラグメント シェーダーを実装して、それらのサンプルを CPU に読み込めるようにする方法はありますか? glSampleID を使用して出力を別の出力バッファーにインデックス付けすることを考えましたが、それが可能かどうかはまったくわかりません。おそらく、OIT に使用されるリンク リスト構造のような方法 (つまり、http://on-demand.gputechconf.com/gtc/2014/presentations/S4385-order-independent-transparency-opengl.pdf )? ただし、GPU ですべての計算が実行されるため、リンクされたリスト データを CPU から何らかの方法で読み取ることができるかどうかはわかりません。

おそらくMSAAは間違ったアプローチであり、そうする他の方法があります. 私の最後の手段は、レンダリングを x 回スーパーサンプリングして、個々のサンプルを復元することだと思いますが、それは非常に非効率的な解決策のようです。

4

1 に答える 1