Проблема с наложением в openGL (пример цветовой шкалы)
Может ли кто-нибудь дать некоторые подсказки относительно того, почему, когда я пытаюсь визуализировать четырехугольник цветной полосы ниже
Это выглядит так:
Вот мой код рендеринга:
gl.glEnable(GL.GL_BLEND);
gl.glBlendFunc(GL.GL_ONE, GL.GL_ZERO);
gl.glBlendEquation(GL.GL_FUNC_ADD);
gl.glEnable(GL.GL_ALPHA_TEST);
gl.glAlphaFunc(GL.GL_GREATER, 0.01f);
// do the drawing...
gl.glDisable(GL.GL_TEXTURE_2D);
gl.glDisable(GL.GL_ALPHA_TEST);
Я уверен, что решение простое, и у меня просто мозги, но это только один из тех дней! Спасибо за помощь!
2 ответа
Какое смешивание вы пытаетесь выполнить? Чтобы просто нарисовать что-то без какого-либо смешения цветов или альфа-каналов, вам даже не придется играть с GL_BLEND
или же GL_ALPHA_TEST
(оставьте оба отключенными). GL_BLEND
используется, чтобы определить, как добавить различные "слои" цвета (обычно о том, как применять альфа-каналы), в то время как GL_ALPHA_TEST
решает, какие значения альфа уважать / игнорировать. Также проверяйте цвета ваших вершин при рендеринге квада (попробуйте визуализировать одноцветный квад без текстуры, например, используя пурпурный цвет).
Однако, глядя на ваши изображения, я думаю, что вы как-то отключили рисование на вашем канале красного цвета (glColorMask()
) - хотя есть желтый, который меня смущает.