2016-10-26 4 views
0

Ich versuche, die Y-Werte einer Textur auf OpenGL ES 2.0 zu invertieren, und hatte nach mehreren Tagen des Experimentierens kein Glück gehabt. Hier ist der Code in meinem didRender-Block (es ist eine Szenen-Kit-Szene).Versuch, eine OpenGL-Textur umzukehren

 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() 

Gibt es etwas, das Ihnen als falsch erscheint? Mein Verständnis ist, dass ich die Textur umdrehen kann, ohne auf eine neue Textur umschreiben zu müssen. Ist das wahr? Vielen Dank!

Antwort

0

Sie benötigen kein separates Vertex-Attribut, um den Flip auszuführen; Ersetzen Sie einfach das Array textureCoordinate durch die Werte von flipVertical (und löschen Sie dann den gesamten Code, der sich auf flipVertical bezieht - Sie brauchen ihn nicht).

Verwandte Themen