OpenGL текстуры куба C ++ - PullRequest
       16

OpenGL текстуры куба C ++

0 голосов
/ 14 апреля 2010

привет, я создаю куб и хочу на одной стороне текстуры.

glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, texture[0]);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filterMode);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filterMode);

        glBegin(GL_POLYGON);   //Vorderseite
    glColor4f(1.0f,0.0f,0.0f,1.0f); //ROT
    glVertex3f(-fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);
    glColor4f(1.0f,1.0f,0.0f,1.0f); //GELB
    glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);
    glColor4f(1.0f,1.0f,1.0f,1.0f); //WEISS
    glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
    glColor4f(1.0f,0.0f,1.0f,1.0f); //MAGENTA
    glVertex3f(-fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
    glEnd();

    glDisable(GL_TEXTURE_2D);

но я не вижу текстуры, что я не так сделал? спасибо.

Ответы [ 2 ]

4 голосов
/ 14 апреля 2010

Вы не указали координаты текстуры. Вам необходимо выполнить один вызов glTexCoord (наиболее часто используемый вариант 2f), который указывает часть текстуры, на которую отображается вектор, за до соответствующего вызова glVertex.

В противном случае, OpenGL не знает, как вставить текстуру в полигоны.

2 голосов
/ 14 апреля 2010

Прежде всего, это не куб, а просто четырехугольник , куб состоит из 6 различных четырехугольников .. (и вместо этого вы можете использовать GL_QUADS GL_POLYGON.

Во-вторых, вы загружаете текстуру, но не сопоставляете ее с вершинами. Вам нужно указать координаты, чтобы отобразить, как текстура должна вписаться в квад. Вы можете сделать это, используя

glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);

пример взят из NEHE Руководства по OpenGL, и я действительно предлагаю вам взглянуть, так как оно довольно хорошо объяснено: http://nehe.gamedev.net

Проверьте урок 6 о наложении текстур: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=06

...