モデルを描画する為の座標点列を指定するには、GL10クラスのglVertexPointerメソッドを使う。
但し、このメソッドには通常の配列を渡してはいけない。
javaでコーディングされた配列のバイトオーダーはビッグエンディアン。
しかし、glVertexPointerに渡す配列はネイティブのバイトオーダーに合わせなければいけない。
そこで、ByteBufferクラスやFloatBufferクラスを使ってネイティブのバイトオーダーで配列を作成する。
ByteBuffer workBuffer = ByteBuffer.allocateDirect(pcnt * 4); // 頂点数 x 4バイト workBuffer.order( ByteOrder.nativeOrder() ); // バイトオーダーを変換 FloatBuffer vertexBuffer = workBuffer.asFloatBuffer(); // FloatBufferへ変換 vertexBuffer.put( v ); // 頂点座標を追加 : : : : vertexBuffer.position( 0 ); // ポインタを先頭に戻す(重要!) gl.glVertexPointer( 3, GL10.GL_FLOAT, 0, vertexBuffer );
法線やテクスチャ座標やインデックスバッファを使用する場合も、同様にBufferクラスを使用する。
コメントをお書きください