OpenGL: загрузка текстуры меняет текущий цвет - PullRequest
7 голосов
/ 04 августа 2010

Я заметил, что когда я загружаю текстуру, она может изменить текущий цвет рисунка, в зависимости от цвета текстуры.Например, после выполнения

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, info.biWidth,
    info.biHeight, 0, GL_RGB, GL_UNSIGNED_BYTE,bitmap);
glTexParameterf(GL_TEXTURE_2D,
    GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D,
    GL_TEXTURE_MAG_FILTER, GL_LINEAR);

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

1 Ответ

9 голосов
/ 04 августа 2010

Да, это так, как это работает, помните, что GL - это конечный автомат, поэтому вы оставили текстуру ограниченной (и, вероятно, включенной), поэтому при рисовании она использовала первый пиксель (при условии, что вы не указали координат текстуры) дляраскрасьте примитив.

Чтобы решить эту проблему, отключите текстурирование, когда вы не хотите текстурировать, вы можете сделать это с помощью:

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