1

OpenGL で 2D オブジェクトの色を選択するために別のフレームバッファ オブジェクトを使用しています。フレームバッファにのみ描画し、必要に応じて色を読み取ることができるかどうか興味があります。

私が今行っていることは、メインのレンダー ループでシーンをメイン フレーム バッファーに描画し、選択可能なオブジェクトだけを「ピッキング」フレーム バッファーにレンダリングすることです。

ユーザーがマウスをクリックすると、「ピッキング」フレームバッファがバインドされ、ピクセルが読み取られ、どのオブジェクトが選択されているかがわかります。これの問題は、ユーザーがマウスをクリックしたときに「ピッキング」フレームバッファーが必要なだけなので、フレームごとにこれを行うのは非効率的です。

ユーザーがマウスをクリックしてから直接読み取ったときに「ピッキング」フレームバッファにレンダリングしようとしましたが、得られるのは白だけです(背景色であり、どのオブジェクトであるかを示す色ではありません)。「ピッキング」フレームバッファを描画すると、実際には何もレンダリングされていないように、全体が白く表示されます。

「ピッキング」フレームバッファへのレンダリング中にメインループで描画を停止する必要がありますか? または、これを可能にする何かが欠けていますか?

EDIT:ピッキングフレームバッファへのレンダリング中にメインループで描画しないようにしましたが、それも機能しませんでした。

4

2 に答える 2

0

wglMakeCurrentまたはを使用して、GLコンテキストを現在のコンテキストにしたことを確認する必要がありますglXMakeCurrentまた、現在のコンテキストを持つことができるのは1つのスレッドのみであるため、同じスレッドで実行する必要があります。

于 2010-11-04T20:23:12.427 に答える
0

"いいえ"。

ただし、複数の GPU を使用できます (ある場合)。ここまたはここで OpenGL 仕様を見つけることができます。ドライバーは *WGL_NV_gpu_affinity* または *AMD_gpu_association* 拡張子をサポートする必要があります。

于 2010-11-04T21:15:48.107 に答える