试图翻转OpenGL纹理

时间:2016-10-26 02:43:56

标签: ios opengl-es

我试图在OpenGL ES 2.0上反转纹理的Y值,经过几天的实验后没有运气。这是我的didRender块中的代码(它是一个场景工具包场景)。

        let textureCoordinates: [GLfloat] = [
        0.0, 0.0,
        1.0, 0.0,
        0.0, 1.0,
        1.0, 1.0]

    let flipVertical: [GLfloat] = [
        0.0, 1.0,
        1.0, 1.0,
        0.0, 0.0,
        1.0, 0.0]

    glEnableVertexAttribArray(0)
    glEnableVertexAttribArray(1)
    glVertexAttribPointer(0, 2, GLenum(GL_FLOAT), 0, 0, flipVertical)
    glVertexAttribPointer(1, 2, GLenum(GL_FLOAT), 0, 0, textureCoordinates)
    glDrawArrays(GLenum(GL_TRIANGLE_STRIP), 0, 4)
    glBindTexture(GLenum(GL_TEXTURE_2D), 0)

    glFlush()

有什么东西可以证明你错了吗?我的理解是我可以翻转纹理而不必重写为新的纹理。真的吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您不需要单独的顶点属性来进行翻转;只需使用textureCoordinate中的值替换flipVertical数组(然后删除与flipVertical相关的所有代码 - 您不需要它。)