4

開発する予定のグラフィックを多用するアプリの準備として、Androidコードを作成しています。私は2004年以来OpenGLを実行していません。http: //www.opengl.org/wiki/Vertex_Array_Objectに出くわし、PCプラットフォームの複数のソースは、vertex-array-objectsを使用することがレンダリングの最良の方法であると主張しています。

私のターゲットプラットフォームは、Android2.3を搭載したMotorolaAtrix2スマートフォンです。

GL_OES_vertex_array_objectに対応する関数のインクルードが見つからないようです。glGenVertexArraysOESに似た関数を呼び出したい。

AndroidでVAOを使用するにはどうすればよいですか?

私の現在のインクルードは

import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.CharBuffer;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;

import javax.microedition.khronos.opengles.GL10;
import javax.microedition.khronos.opengles.GL11;
4

2 に答える 2

4

VAOsかなり新しく、OpenGL | ES 1.0または1.1には含まれていません(と混同しないでくださいBuffer Objects。または、と呼ばれることもありますVBOs)。OpenGL | ES 2.0をインポートして使用する必要があります。これを行うには、グラフィックコードにいくつかの変更を加えてglVertexPointer、同様の方法ではなくシェーダーを使用して描画する必要があります。見た目からすると、GL20ExtAndroidにはクラスなどが組み込まれていません。ウェブを調べてバインディングを探すか、NDKを使用して自分で作成します。

于 2012-03-26T07:41:32.620 に答える
1

一部のデバイスでは、VAO拡張機能が実装されていません。まず、OpenGlESのバージョンを次のように確認します

gl.glGetString(GL10.GL_VERSION);

次に、拡張機能が利用可能かどうかを確認します。

gl.glGetString(GL10.GL_EXTENSIONS);

GL_OES_vertex_array_objectが含まれている必要があります

拡張機能の詳細:さまざまなAndroidデバイスで利用可能なOpenGL拡張機能

AndroidのVAOの詳細については、OES_vertex_array_objectとクライアントの状態を確認してください。

編集:質問に正しく答えるために答えを変更します。コメントのためのThx。

于 2012-03-26T07:28:02.460 に答える