我正在使用此图像作为我的光罩:
但是在游戏中,边缘是可见的,如下所示:
我该怎么做才能阻止这种情况的发生?图像或渲染方式是否有问题?我的代码如下:
frameBuffer.begin();
Gdx.gl.glClearColor(CLEAR, CLEAR, CLEAR * 2, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
batch.setBlendFunction(GL20.GL_ONE, GL20.GL_ONE);
batch.begin();
// render lights
currentMap.lightsController.render(batch);
batch.end();
frameBuffer.end();
Gdx.gl.glClearColor(0, 0, 0, 1);
batch.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
// render map, entities, everything
currentMap.render(camera, batch);
batch.setProjectionMatrix(batch.getProjectionMatrix().idt());
batch.setBlendFunction(GL20.GL_ZERO, GL20.GL_SRC_COLOR);
batch.begin();
batch.draw(frameBuffer.getColorBufferTexture(), -1, 1, 2, -2);
batch.end();
答案 0 :(得分:1)
问题在于纹理本身。它只是不褪色以完成黑暗/黑色。在纹理的边缘,该值(亮度)仍约为3%。只需重新加工纹理并确保渐变正确即可。