Тусклый экран 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