LIBGDX-如何摆脱渐变背景上的条带效应?

时间:2018-12-27 05:19:24

标签: libgdx gradient

我的游戏中出现与渐变相关的纹理的条纹问题,我似乎找不到原因以及如何解决它。

这就是我在说的:左边是游戏中的渐变,而右边是在渐变生成器应用程序(Tint)中生成的渐变。我们可以清楚地看到条带问题。

要创建渐变,我使用此代码生成了一个Texture(纹理),该Texture用于创建可缩放以填充用户屏幕的Image。

Pixmap pix = new Pixmap(2, 2, Pixmap.Format.RGBA8888);
pix.setColor(colorSchemes[backgroundColorScheme.ordinal()].getTopColor());
pix.fillRectangle(0,0,2,1);
pix.setColor(colorSchemes[backgroundColorScheme.ordinal()].getBottomColor());
pix.fillRectangle(0,1,2,1);

Texture texture = new Texture(pix);
texture.setFilter(Texture.TextureFilter.Linear, 
Texture.TextureFilter.Linear);
pix.dispose();

当我尝试在背景顶部添加fog-like演员以对其进行动画处理时,我也遇到了乐队问题。我缩放它们,更改它们的不透明度,然后四处移动,然后再次遇到条带问题,如下图所示。

我正在尝试复制本游戏中的背景效果 https://www.youtube.com/watch?v=_vBczzj3NAU

我的渲染屏幕渲染循环中有以下代码:

@Override
public void render (float delta) {
    Gdx.gl.glClearColor(0,0,0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
    Gdx.gl.glEnable(GL20.GL_BLEND);
    Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
}

关于如何解决这些问题的任何想法?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

将每个颜色通道的位数(我相信默认值为5位)增加到8位,解决了我的条带问题。

在AndroidLauncher.java

AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.r = config.g = config.b = config.a = 8;

在DesktopLauncher.java中

LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
config.r = config.g = config.b = config.a = 8;