0

私は OpenTK 経由で OpenGL を使用しており、バックグラウンド スレッドで FramebufferObject にレンダリングしています。レンダリングされた各フレームの後、UI の 1 つ以上の OpenGL コントロールに FBO (の一部) を表示したいと考えています。

それはどのように機能しますか?

4

1 に答える 1

1

2つの選択肢があります。

  • ドライバーがコンテキスト共有をサポートしている場合は、OpenGLコントロールでFBOテクスチャをバインドし、それを直接表示できます(テクスチャのバインド、クワッドのレンダリング、完了)。シンプルで高速-レンダリングをディスプレイと同期させてください。
  • ドライバーがそうでない場合は、レンダリングの結果をGL.ReadPixelsを介してビットマップオブジェクト(または同等のもの)にリードバックする必要があります。次に、それらをテクスチャとして他のOpenGLコントロールに再アップロードするか、OpenGL以外のコントロールに直接表示することができます。

デフォルトでは、OpenTKは常にコンテキストを共有しようとします。残念ながら、Intelドライバーはコンテキスト共有をサポートしていないため、最初のアプローチを使用することはできません。

于 2011-02-08T19:58:19.107 に答える