使用和不使用绑定纹理渲染对象

时间:2014-03-26 05:43:03

标签: ios iphone opengl-es rendering

第一个对象是一个框架,第二个对象是一个包含与其绑定的图像的矩形。

我的代码无法正常运行。

如果我同时绘制了两个对象,那么这些对象就不会出现,但是如果我只绘制其中一个对象,它就会起作用。

此代码在渲染函数上实现:

    glMatrixMode(GL_PROJECTION);
    glLoadMatrixf(_projectionMatrix);

    glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();

    glEnableClientState(GL_VERTEX_ARRAY);
        glEnableClientState(GL_NORMAL_ARRAY);

    //Object frame

        glVertexPointer(3, GL_FLOAT, 0, frameVertices);

        glEnableClientState(GL_COLOR_ARRAY);
        glColorPointer(4, GL_UNSIGNED_BYTE, 0, frameColors);
    glMultMatrixf(markerInfo[0].transform);

    glDrawArrays(GL_TRIANGLES, 0, 72);


    //Object with binded texture

    NSString* filePath = [[NSBundle mainBundle] pathForResource:@"map" ofType:@"png"];
    GLKTextureInfo* textureInfo = [GLKTextureLoader textureWithContentsOfFile:filePath options:nil error:nil];

        glActiveTexture(GL_TEXTURE0);

    glBindTexture(textureInfo.target, textureInfo.name);

        glEnableClientState(GL_TEXTURE_COORD_ARRAY);

    glVertexPointer(3, GL_FLOAT, 0, textureVertices);
    glTexCoordPointer(2, GL_FLOAT, 0, textureCoords);

    glNormalPointer(GL_FLOAT, 0, normals);

    glEnable(GL_TEXTURE_2D);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

0 个答案:

没有答案