2012-03-01 3 views
1

몇 가지 3d 효과가 필요하므로 cocos2d draw() 메소드에서 일부 opengl을하고 있습니다. 테스트하려면 삼각형 스트립으로 텍스처를 그립니다. 문제는 결과 그림이 거꾸로 뒤집혀 있다는 것입니다. 그것은 거꾸로 이유 코드는 매우 간단합니다, 나는 알아낼 수 없습니다 :삼각형 스트립을 거꾸로 한 opengl 그립 텍스처

ccVertex3F newPoint[4] = {{-20,0, -100}, 
    {20,0, -100}, 
    {-20,40, -100}, 
    {20,40, -100} 
}; 

ccVertex2F _textCoordArray[4] = {{0,0}, {1,0}, {0,1}, {1,1}}; 

glDisableClientState(GL_COLOR_ARRAY); 

glBindTexture(GL_TEXTURE_2D, [lineTexture name]); 

glMatrixMode(GL_MODELVIEW); 
glPushMatrix(); 

glLoadIdentity(); 

glVertexPointer(3, GL_FLOAT, 0, newPoint); 
glTexCoordPointer(2, GL_FLOAT, 0, _textCoordArray); 
glEnableClientState(GL_VERTEX_ARRAY); 

glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 
glPopMatrix(); 
+0

이미지를 게시하면 도움이 될 것입니다. – LebRon

+0

죄송합니다, 새로운 사용자로서 아직 이미지를 업로드 할 권한이 없습니다. 그러나 이미지는 거꾸로 뒤집힌 것처럼 간단합니다. – yorkdu

답변

1

일부 라이브러리는 단지 텍스처 지점의 서로 다른 아이디어를 가지고있다 (0,0) (맨 왼쪽 또는 왼쪽 하단). 나는 당신이 사용한 이미지 로딩 라이브러리가 (0,0)은 왼쪽 상단으로 간주하고, OpenGL은 왼쪽 하단으로 간주한다고 추측하고 있습니다.

그것을 해결하는 방법 중 하나를 수 거꾸로로드 코코아에게 (방법 또는 경우의도 가능 모르는) 또는 UV의 veritcal 방향을 플립 :에서

을 :

_textCoordArray[4] = {{0,0}, {1,0}, {0,1}, {1,1}}; 

받는 사람 :

_textCoordArray[4] = {{0,1}, {1,1}, {0,0}, {1,0}};