2016-10-26 2 views
0

OpenGL ES 2.0에서 텍스처의 Y 값을 반전시키고 며칠 동안 실험을 해본 결과 운이 없었습니다. 내 didRender 블록의 코드는 다음과 같습니다 (장면 키트 장면).OpenGL 텍스처를 뒤집으려고 시도합니다.

 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

플립을 수행하기 위해 별도의 정점 속성이 필요하지 않습니다. textureCoordinate 어레이를 flipVertical의 값으로 바꾸고 (그 다음 flipVertical과 관련된 모든 코드를 삭제하십시오. 필요하지 않습니다).

관련 문제