【问题标题】:libGDX: Outer Glow for image using shaderlibGDX:使用着色器的图像外发光
【发布时间】:2025-12-16 19:05:02
【问题描述】:

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

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

图片:

在渲染方法中:

@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);

}

输出:

最后,我需要这方面的任何建议(阴影语言)。

【问题讨论】:

    标签: java opengl opengl-es libgdx


    【解决方案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(); 
    

    【讨论】:

    • 谢谢。我之前在这个主题上看过你的帖子:) .. 如果你可以做发光而不是轮廓,请提供代码。