2

カラーコードを使用して 2D アプリケーションの簡単なピッキングを実装したいと考えています。これまでのところ、GLES20.glDrawElements() を呼び出してオブジェクトをレンダリングしており、要求があった場合にのみレンダリングしています。

現在、このトピックに関する OpenGL のチュートリアルを多数読みましたが、OpenGL ES のチュートリアルは 1 つも見つかりませんでした。また、これらの変換/転送にも失敗しました。

それで、私は2つの質問があります。ダブルバッファリングを有効にするには? 私が知っている限りでは、バッファーが 1 つしかないからです。これらのバッファは自動的にスワップされますか? これらはそのための方法であるため、そうではないと思います。バックバッファのみにレンダリングする方法は? 一度だけでいいので、新しいフレームをレンダリングするたびに行うのはもったいないです。

ほぼ 4 年間、すべての質問に対する回答を見つけてきた後、stackoverflow で質問するのはこれが初めてなので、お手柔らかにお願いします :)

4

1 に答える 1

2

EGLSurface にレンダリングする場合は、デフォルトでダブル バッファリングを有効にする必要があります。あなたが言うように、バッファは自動的にスワップされません。SDK を使用している場合は、onDrawFrame を終了した後にスワップが発生するはずです。内部で eglSwapBuffers を呼び出す必要があります。

デフォルトでダブル バッファリングがあるため、デフォルトでバックバッファにもレンダリングされます (そうしないと、半分レンダリングされたフレームが画面に表示されます)。

いくつかのオプションがあるようです。1) 必要に応じてバックバッファにレンダリングし、カラー コードを取得してからバッファをクリアし、通常のフレーム更新に進みます。2) オフスクリーン バッファ、つまりフレームバッファ オブジェクトにレンダリングします。

于 2013-06-16T21:03:11.803 に答える