面ごとに異なるテクスチャを持つ立方体のテクスチャリングに問題があります。すべての面に1つのテクスチャで立方体を描画できますが、複数のテクスチャを使用しようとすると失敗します。私がそれをやろうとしている方法はそうです:
//my indexing array located in a header file
#define NUM_IMAGE_OBJECT_INDEX 36
static const unsigned short cubeIndices[NUM_IMAGE_OBJECT_INDEX] =
{
0, 1, 2, 2, 3, 0, // front
4, 5, 6, 6, 7, 4, // right
8, 9,10, 10,11, 8, // top
12,13,14, 14,15,12, // left
16,17,18, 18,19,16, // bottom
20,21,22, 22,23,20 // back
};
現在、私のレンダリング関数では、これは現在、単一のテクスチャで立方体を描画するために機能します
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, iconTextureID);
glDrawElements(GL_TRIANGLES, NUM_IMAGE_OBJECT_INDEX, GL_UNSIGNED_SHORT, 0);
これは動作しません
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, iconTextureID);
glDrawElements(GL_TRIANGLES, NUM_IMAGE_OBJECT_INDEX, GL_UNSIGNED_SHORT, (const GLvoid*)&cubeIndices[0]);
他のいくつかの例を見ると、これは同じことと同じであるはずです。最終的に私はこれを次のようにしたいと思います:
for(int i = 0; i < 6; i++){
iconTextureID = textureID[i];
glBindTexture(GL_TEXTURE_2D, iconTextureID);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, (const GLvoid*)&cubeIndices[i*6]); //index 0-5 use texture 1, 6-11 use texture 2, etc
}
このインデックス作成で何が問題になる可能性があるかを誰かが知っていますか?iveは基本的にこのコードをAndroidプロジェクト(動作します)からコピーして貼り付け、現在iosでこれを実行しようとしています。