OpenGLでのカラーピッキングとアンチエイリアスに問題があります。AAがアクティブになっている場合、glReadPixelsの結果は、オブジェクトのエッジとオブジェクトの交差で明らかに間違っています。例えば:
ボックス#32(RGBA:32、0、0、0)の近くにボックス#28(RGBA:28、0、0、0)をレンダリングします。AAを使用すると、AAアルゴリズムが原因で、立方体と三角形が重なる場所で間違ったReadPixel値(30など)を取得したり、ボックスの端で14の値を取得したりする可能性があります。
選ぶ必要のあるオブジェクトが約40万個あります(これはジグソーパズルゲームです)。オブジェクトを形状で選択できることが重要です。
glDisable(GL_MULTISAMPLE)でAAを無効にしようとしましたが、特定のAAモードでは機能しません(AAの実装によって異なります-SS、MS、CS ..)
では、基になるオブジェクトを選択するにはどうすればよいですか?
- AAを一時的に無効にする方法はありますか?
- 別のバッファを使用していますか、それともレンダリングコンテキストを使用していますか?
- 他に何か提案はありますか?