Проблема с наложением в 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 ответа

Решение

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

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

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

Другие вопросы по тегам