Текстура влияет на цвет объектов - PullRequest
0 голосов
/ 19 марта 2011

Я отображаю вход моей веб-камеры (OpenCV) как текстуру на плоскости в OpenGL. Когда я выполнил свою программу, я заметил, что текстура влияет на цвет других существующих плоскостей. Так что, если у меня есть черная текстура, я не вижу свою 3d сцену. Есть ли способ в OpenGL избежать влияния текстуры на цвет других объектов?
Желаемый результат должен состоять в том, что, если текстура черная, только одна плоскость должна быть черной, а остальные должны сохранять ранее определенный цвет.

1 Ответ

2 голосов
/ 19 марта 2011

OpenGL API меняет состояние контекста рендеринга.Контекст рендеринга также включает фактические текстуры, используемые для создания фрагментов геометрии.

Если вы включаете текстурирование (то есть * glEnable (GL_TEXTURE_2D) *), это применяется ко всем геометриям, нарисованным до тех пор, пока не установлен этот флаг состояния.Вы можете отключить текстурирование, используя * glDisable (GL_TEXTURE_2D) *.

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

Вы должны сделать что-то вродеследующее:

glEnable(GL_TEXTURE_2D);
...
DrawPlane0();   // This plane is textured
...
glDisable(GL_TEXTURE_2D);
...
DrawPlane1();   // This plane is not textured
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...