Изменение цвета в OpenGL

Я использую OpenGL для рисования в 2D. Пытаюсь наложить текстуры на альфа. Я сделал это:

glDisable(GL_DEPTH_TEST);
glDepthMask(GL_FALSE);

glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);

И затем я рисую в обратном z-порядке. Однако я получаю странное изменение цвета. Вот пример чего-то, что должно плавно переходить от одного изображения к другому (на самом деле, в данном конкретном случае изображения являются бесшовными, но это не всегда происходит (так что нет, у меня просто не может быть альфа-канала)): Strange discoloration from alpha blending

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

РЕДАКТИРОВАТЬ: Для справки, вот две текстуры, которые смешиваются:

enter image description here

7
задан andyvn22 8 June 2011 в 21:23
поделиться