Тусклый экран Libgdx с glClearColor

Я просто хочу нарисовать фон, наложить его на 0.5f прозрачного черного цвета, чтобы затемнить его и визуализировать поверх этого меню паузы.

Я пытался:

    Gdx.gl.glClearColor(0f, 0f, 0f, 0.5f);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

и ничего не работает. Я также не мог найти никакого решения онлайн. Другой вариант - наложить черный спрайт, но я не хочу этого делать. Есть ли способ закрасить его GL?

2 ответа

Решение

Ну я бы нарисовал прозрачный прямоугольник

    Gdx.gl.glEnable(GL20.GL_BLEND);
    Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
    shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.setColor(new Color(0, 0, 0, 0.5f));
    shapeRenderer.rect(0, 0, screenWidth, screenHeight);
    shapeRenderer.end();
    Gdx.gl.glDisable(GL20.GL_BLEND);

Надеюсь это поможет

Ваше единственное решение - наложить черный спрайт. Является наиболее эффективным и практичным.

Согласно документации:

Alpha function, blend function, logical operation, stenciling, 
texture mapping, and depth-buffering are ignored by glClear.

glClear takes a single argument that is the bitwise OR of several
values indicating which buffer is to be cleared.

The values are as follows:

GL_COLOR_BUFFER_BIT
    Indicates the buffers currently enabled for color writing.

Там не может быть больше цветов "под" после запуска glClear

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