libGDX:使用着色器的图像的外发光

时间:2015-11-24 11:15:25

标签: java opengl opengl-es libgdx

我是使用libGDX框架的游戏开发人员,但在shader OpenGL中是新的。我试图像这张照片做外部发光:

enter image description here

我在不同的网站上找到了简单的教程,例如2D Selection Outline Shader in LibGDX。它工作正常,但大纲只画了,图像没画,我不知道为什么!

图片:

enter image description here

在渲染方法中:

@Override
public void render() {
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    shaderOutline.begin();
    shaderOutline.setUniformf("u_viewportInverse", new Vector2(1f / 99, 1f / 94));
    shaderOutline.setUniformf("u_offset", 2);
    shaderOutline.setUniformf("u_step", Math.min(1f, 99 / 70f));
    shaderOutline.setUniformf("u_color", new Vector3(123/255, 1, 71/255));
    shaderOutline.end();

    batch.setShader(shaderOutline);
    batch.begin();
    batch.draw(img, 240, 400);
    batch.end();
    batch.setShader(null);

}

输出:

enter image description here

最后,我在这个领域需要任何建议(着色语言)。

1 个答案:

答案 0 :(得分:1)

您还需要添加image本身的图纸:

render

batch.setShader(shaderOutline);
batch.begin();
batch.draw(img, 240, 400);
batch.end();
batch.setShader(null);
// Add this:
batch.begin();
batch.draw(img, 240, 400);
batch.end();