我试图在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()
有什么东西可以证明你错了吗?我的理解是我可以翻转纹理而不必重写为新的纹理。真的吗?谢谢!
答案 0 :(得分:0)
您不需要单独的顶点属性来进行翻转;只需使用textureCoordinate
中的值替换flipVertical
数组(然后删除与flipVertical
相关的所有代码 - 您不需要它。)