2010-05-04 3 views
2

OpenGL에서 2D 게임을 작성하고 있습니다. 쿼드가 화면에서 끝나는 곳을 쉽게 알 수 있도록 이미 직교 투영을 설정했습니다. 문제는 픽셀을 텍스처 좌표에 직접 매핑 할 수 있기를 원했기 때문에 텍스처에 직교 변형 (gluOrtho2d 사용)도 적용했습니다. 이제 정수와 glTexCoord2i를 사용하여 픽셀을 직접 매핑 할 수 있습니다. 것은, googling/reading/asking 후에, 아무도 glTexCoord2i의 동작을 (명백하게) 알지 못한다는 것을 알았지 만, 나는 잘 사용하고있다. 내가 올바른 뭘하는지 내가 뭘하는지에 문제가있다, 그래서OpenGL에서 직교 투영 및 텍스처 좌표

glBegin(GL_QUADS); 
    glTexCoord2i(16,0); 
    glVertex2f(X, Y); 
    glTexCoord2i(16,16); 
    glVertex2f(X, Y+32); 
    glTexCoord2i(32, 16); 
    glVertex2f(X+32, Y+32); 
    glTexCoord2i(32, 0); 
    glVertex2f(X+32, Y); 
glEnd(); 

을, 또는이다 : 내가 쓴 일부 샘플 테스트 코드는 다음?

답변

3

편의상 정수 인수를 취하는 glTexCoord의 변형이며, 다른 모든 텍스 코드와 동일한 방식으로 값이 텍스처 변환에 의해 변환됩니다

텍스처 좌표를 픽셀 단위로 나타내려면 코드가 완전히 괜찮아 보입니다.

는 편집 : 당신은 "다음 단계"에 OpenGL을 코딩을 할 경우, 당신은 정점 버퍼를 구축하고 glDrawArrays로 그리는 대신 즉시 모드 렌더링 (glBegin/glEnd)을 포기 고려한다,이 방법 빠릅니다.

+0

고마워요! 버텍스 버퍼에 대해서는 알고 있지만, 코드 초기 단계에서 테스트 용으로 사용하고 있습니다. =) – stelonix