LWJGL 2D наложение текстур вне экрана - PullRequest
0 голосов
/ 22 июля 2011

Я пытаюсь отобразить двумерное изображение на квад в качестве фонового изображения.Изображение рисуется в центре экрана, поэтому оно закрывает только верхний правый квартал, а остальное уходит за экран.Можно ли как-нибудь перевести или изменить TexCoord, чтобы он рисовал снизу слева?Ниже приведен код, который я использую.

        background.bind();          
        GL11.glBegin(GL11.GL_QUADS);
             GL11.glTexCoord2f(1,1);
             GL11.glVertex2i(0,0);
             GL11.glTexCoord2f(1,0);
             GL11.glVertex2i(0,600);
             GL11.glTexCoord2f(0,0);
             GL11.glVertex2i(800,600);
             GL11.glTexCoord2f(0,1);
             GL11.glVertex2i(800,0);
        GL11.glEnd();

1 Ответ

1 голос
/ 22 июля 2011

Это не имеет ничего общего с текстурами; если бы вы убрали свою текстуру, она бы выглядела точно так же, как сейчас.

OpenGL не принимает вершины в координатах окна. Чтобы сделать это, вам, как правило, необходимо настроить матрицу ортографической проекции некоторой формы, обычно с glOrtho. Это будет выглядеть примерно так:

glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0, width, 0, height, -1.0, 1.0);

glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();

//Render stuff in window coordinates here.

glPopMatrix();

glMatrixMode(GL_PROJECTION);
glPopMatrix();

Нажатие и выталкивание матрицы обеспечивает сохранение предыдущей матрицы.

...