Проблема с наложением в openGL (пример цветовой шкалы) - PullRequest
2 голосов
/ 18 мая 2011

Может ли кто-нибудь дать некоторые подсказки относительно того, почему, когда я пытаюсь визуализировать четырехцветную полосу ниже enter image description here

Это выглядит так: enter image description here

Вот мой код рендеринга:

    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 ]

0 голосов
/ 25 мая 2011

При импорте файла PNG возникла проблема с обменом RGBA.

0 голосов
/ 18 мая 2011

Какое смешивание вы пытаетесь выполнить?Чтобы просто что-то нарисовать без какого-либо смешения цветов или альфа-каналов, вам даже не нужно играть с GL_BLEND или GL_ALPHA_TEST (оставьте оба отключенными).GL_BLEND используется для определения того, как добавлять различные «слои» цвета (обычно о том, как применять альфа-каналы), а GL_ALPHA_TEST определяет, какие значения альфа следует учитывать / игнорировать.Также проверяйте цвета ваших вершин при рендеринге четырехугольника (попробуйте визуализировать одноцветный четырехугольник без текстуры, например, используя пурпурный цвет).

Однако, глядя на ваши изображения, я думаю, вы как-то отключили рисование на свой канал красного цвета (glColorMask()) - хотя есть желтый, который смущает меня.

...