4
比方說,我有一種方法獲得GLuint紋理作爲參數,我想渲染它的一部分。想想一個瓷磚集,例如,我希望能夠加載瓷磚集並在我加載我的關卡時渲染它的部件(瓷磚)。C++ Opengl呈現圖像的一部分
如果我以某種方式能夠從要繪製的圖塊集的像素座標中定義高度,寬度,posX和posY,那將是最優的。
我一直在嘗試幾個小時,任何幫助將不勝感激。
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