LWJGL Прозрачность

Я пытаюсь использовать прозрачность LWJGL с помощью команды:

// Enable transparency
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

И прозрачность работает, просто фон нарисован так:

    // Draw Background
    glColor4f(1f, 1f, 1f, 1f);
    glPushMatrix();
    glBegin(GL_QUADS);
    glVertex2f(0, 0);
    glVertex2f(width, 0);
    glVertex2f(width, height);
    glVertex2f(0, height);
    glEnd();
    glPopMatrix();

Не показывает. Я использую LWJGL 2.8.2, Eclipse Indigo, и любая помощь будет признательна!

2 ответа

Я не уверен, является ли это лучшим решением, но способ получить прозрачный и непрозрачный контент будет деактивировать / активировать GL_BLEND перед рисованием, например так:

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

glDisable(GL_BLEND);
drawNonTransparentContent();

Это сработало для меня.

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

Когда вы визуализируете нетекстурированные вершины, рекомендуется использовать glDisable(GL_TEXTURE_2D) . Это должно исправить это, если ur отображает вещи в правильном порядке

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