私はコードが動作している。 3つの問題がありました。
- DrawArraysは、頂点配列を順方向に処理します。すなわち、一度に1つの要素を配列から描画し、次の要素に移動します。あなたはそれを通って前後することはできません。
- .xmlファイル内のオフセットリストを使用して、頂点リスト内でglDrawElementsが使用される配列を作成しました。
- オフセットの符号なしを使用する必要があります。私は整数を使っていて、うまくいかなかったのです。
ここで結果として得られるコードが動作します。問題は私のものでした。 sketchupから生成された.xmlファイルではありません。
public void draw(GL10 gl) {
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mVertexBuffer);
gl.glColorPointer(4, GL10.GL_FLOAT, 0, mColorsBuffer);
gl.glEnable(GL10.GL_COLOR_MATERIAL);
// Enable color tracking
gl.glEnable(GL10.GL_COLOR_MATERIAL);
gl.glDrawElements(GL10.GL_TRIANGLES, myoffsets.length, GL10.GL_UNSIGNED_SHORT, mIndicesBuffer);//mode, count, type, indices
}