4
저는 GLuint 텍스처를 매개 변수로 얻는 메소드가 있고 그 중 일부를 렌더링하고 싶습니다. 예를 들어 타일 세트를 생각해보십시오. 타일 세트를로드하고 레벨을로드 할 때 타일 세트 (타일)를 렌더링 할 수 있기를 원합니다.C++ Opengl 이미지의 일부분을 렌더링합니다
그리기 위해 설정된 타일에서 픽셀 좌표로 높이, 너비, posX 및 posY를 어떻게 든 정의 할 수 있다면 최적 일 것입니다.
저는 몇 시간 동안 노력해 왔으며 어떤 도움을 주시면 감사하겠습니다.
나는 현재 텍스처를 그리는 방법의 단순화 된 버전 :이 glTexCoord
기능을 사용 할
void Render::draw(GLuint texture, float posX, float posY, float sizeX, float sizeY) {
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glAlphaFunc(GL_GREATER,0.1f);
glBindTexture(GL_TEXTURE_2D, texture);
glPushMatrix();
glTranslatef(posX,posY,0);
glBegin(GL_QUADS);
//Bottom-left vertex (corner)
glTexCoord2i(0, 0);
glVertex2f(-sizeX,-sizeY);
//Bottom-right vertex (corner)
glTexCoord2i(1, 0);
glVertex2f(sizeX,-sizeY);
//Top-right vertex (corner)
glTexCoord2i(1, 1);
glVertex2f(sizeX,sizeY);
//Top-left vertex (corner)
glTexCoord2i(0, 1);
glVertex2f(-sizeX,sizeY);
glEnd();
glPopMatrix();
glDisable(GL_BLEND);
}
그래, 그 값은 0에서 1까지입니다. 대신 픽셀 좌표를 사용하여 위치를 정의하는 방법을 알고 있습니까? – Sane
나는 마침내 그것을 이해했다! 관심있는 사람들을 위해 나는 해결책을 찾았습니다 : http://www.gamedev.net/topic/559980-opengl-and-2d-tiles/ – Sane