私はandroidndkを使用してゲームを書いています。私はopenglでオブジェクトを選択するためにピッキングを使用しています。そのために、レンダリングするオフスクリーンフレームバッファオブジェクトがあり、glReadPixels()を使用してFBOから色を取得します。次に、色はクリックされたオブジェクトのIDをエンコードします。
問題は、glReadPixels()が機能しないことです。色の値を読み取らないだけです。それを機能させるために私がしなければならないことはありますか?
GLubyte pixel[4] = {0,0,0,0};
glReadPixels(x, y , 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, (void *)pixel);
これが私がreadpixelsを使おうとする方法です。ただし、結果は常に(0,0,0,0)になります。座標(x、y)を確認しました。彼らは大丈夫です。openglのドキュメントによると、GL_RGBA、GL_UNSIGNED_BYTEの組み合わせは、すべてのopengles2.0実装でもサポートされている必要があります。
Androidマニフェストで設定する必要のある権限について何か読んだことがあります。私は次のような権限を追加しようとしました:
<uses-permission android:name="android.permission.READ_FRAME_BUFFER"/>
しかし、それも機能しませんでした。
誰かが解決策が何であるかについての考えを持っていますか?またはどこで見ることができますか?