2

画面表示でユーザータップ間で描画モードを切り替えて立方体を描画する簡単なiPhoneプログラムを作成しました。

glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glUseProgram(_program);

glBindVertexArrayOES(_vertexArray);
glUniformMatrix4fv(uniforms[UNIFORM_MODELVIEWPROJECTION_MATRIX], 1, 0, _modelViewProjectionMatrix.m);
glUniformMatrix3fv(uniforms[UNIFORM_NORMAL_MATRIX], 1, 0, _normalMatrix.m);
if (_drawGLPointsMode)
    glDrawElements(GL_POINTS, sizeof(CubeIndices)/sizeof(CubeIndices[0]), GL_UNSIGNED_BYTE, 0);
else
    glDrawElements(GL_TRIANGLES, sizeof(CubeIndices)/sizeof(CubeIndices[0]), GL_UNSIGNED_BYTE, 0);

上記のコードでは、_drawGLPointsModeはタップ間で変更されるBOOLです。私が抱えている問題は、GL_TRIANGLESで描画すると、立方体が描画されないことです。GL_POINTSで描画に切り替えるときに機能します。

誰かが私を助けてくれますか、私は私のコードに根本的な欠陥があると感じています。前もって感謝します。

編集:

glGenBuffers(1, &_vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(CubeVertices), CubeVertices, GL_STATIC_DRAW);

glGenBuffers(1, &_vertexIndexBuffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _vertexIndexBuffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(CubeIndices), CubeIndices, GL_STATIC_DRAW);

また、GL_STATIC_DRAWをGL_DYANMIC_DRAWに変更しようとしましたが、同じ結果が得られます。また、iphoneシミュレーターで現在のコードを実行すると、すべてが正しく機能します。この問題が発生するのは、実際のデバイス(iphone 4S)で実行している場合のみです。ありがとう!

4

0 に答える 0