OpenGL текстуры наложения - PullRequest
       6

OpenGL текстуры наложения

2 голосов
/ 12 апреля 2011

Привет, я создаю игру, используя openGL в c ++, когда я пытаюсь сопоставить текстуру с объектом, он меняет цвет всего, что я нарисовал, например, все становится прозрачным красным или зеленым ..

glEnable (GL_TEXTURE_2D);
    Bitmap image;
    image.loadBMP ("Texture.bmp");

    glGenTextures(1, &m_TextureID);
    glBindTexture ( GL_TEXTURE_2D, m_TextureID);

    glTexEnvf ( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE , GL_MODULATE);
    glTexParameterf ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);

    glTexParameterf ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameterf ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameterf ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
    gluBuild2DMipmaps ( GL_TEXTURE_2D, 3, image.width, image.height, GL_RGB,    GL_UNSIGNED_BYTE, image.data);
    glEnd(); 

это мой текстурный код и вот как я отображаю текстуру

glBegin(GL_QUADS);
glEnable (GL_TEXTURE_2D);
//glColor3d(1, 0, 0); 
glTexCoord2f (0.0f,0.0f);
glVertex3f(0, 0, 0); // bottom left
glTexCoord2f (1.0f,0.0f);
glVertex3f(10, 0, 0); // bottom right
glTexCoord2f (1.0f,1.0f);
glVertex3f(10, 0.6, 0);// top right
glTexCoord2f (0.0f,1.0f);
glVertex3f(0, 0.6, 0); // top left
glEnd();

и т. Д. *

все мои нетекстурированные объекты нарисованы так

glBegin(GL_QUADS);//BACK
glColor3d(1,0,0);
glVertex3f(10, 0, 0);
glVertex3f(10, 0, -5.6);
glVertex3f(10, 0.6, -5.6);
glVertex3f(10, 0.6, 0);
glEnd();

и т.д ... я что-то упускаю действительно очевидное?спасибо

Ответы [ 2 ]

4 голосов
/ 12 апреля 2011

Вам нужно отключить наложение текстуры для других объектов, если вы не хотите, чтобы они были текстурированы.

glDisable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
...
1 голос
/ 12 апреля 2011

Вы переключили эти два:

glBegin(GL_QUADS);
glEnable (GL_TEXTURE_2D);

glEnable не должен вызываться между glBegin () и glEnd ()

Кроме этого, используйте glGetError и посмотрите, какой именно вызов не удался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...