我正在使用 GL Kit 绘制一个在屏幕上旋转的立方体。在每张脸上绘制相同的纹理时,我的效果非常好。我想在每张脸上画出不同的纹理。
这是当前我的代码绘制立方体的方式(请注意,我实际上在 theTextures 数组中加载了 6 个不同的纹理,但到目前为止,当我更改纹理时,我只绘制相同的立方体的所有边)。
self.effect.texture2d0.name = theTextures[i].name;
self.effect.texture2d0.enabled = true;
self.effect.texture2d0.target = GLKTextureTarget2D;
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _indexBuffer);
glBindVertexArrayOES(_vertexArray);
glDrawElements(GL_TRIANGLES, sizeof(Indices)/sizeof(Indices[0]), GL_UNSIGNED_BYTE, 0);
我在stackOverflow上做了很多搜索,看了很多教程,但找不到一个简单的方法来做到这一点。我假设我可以为每个边创建一个顶点数组并为每个顶点数组使用 glDrawElements,但这似乎非常低效。有没有办法让我不必创建 6 个不同的顶点数组来做到这一点?谢谢!