Я довольно новичок в OpenGL, поэтому, возможно, ответ будет очевиден. В настоящее время я пытаюсь сделать синий круг, используя GL_TRIANGLE_FAN в C++. Моя проблема в том, что когда я устанавливаю цвет с помощью glColor4f, он устанавливает для всех моих других текстур синий цвет поверх них, как показано ниже (это должен быть серебристый металл).glColor окраска всех текстур
Обращаю текстуры, используя метод, показанный ниже.
glLoadIdentity();
glTranslatef(x,y,0);
glBindTexture(GL_TEXTURE_2D, this->texture);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f); glVertex3f(0,0,0);
glTexCoord2f(1.0f, 0.0f); glVertex3f(width,0,0);
glTexCoord2f(1.0f, 1.0f); glVertex3f(width,height,0);
glTexCoord2f(0.0f, 1.0f); glVertex3f(0,height,0);
glEnd();
Я не уверен, просто ли я должен очистить флаг для того, чтобы работать, но я застрял в течение нескольких дней в настоящее время.
Это сработало! Синий был удален из других объектов (к сожалению, кажется, что круг не рисуется), но это касается исходного вопроса. Благодаря! – Silvae
извините, но «отвяжите текстуру»? Это первый раз, когда я слышу такую бессмыслицу –
, здесь неотвязывание не обязательно. просто используйте 'glDisable (GL_TEXTURE_2D)' – Rookie