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

标签 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

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

最佳答案

您还需要添加图像本身的绘图:

渲染中:

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

关于java - libGDX:使用着色器的图像外发光,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33892163/

相关文章:

java - 关于TestNG的问题

java - Spring Data REST - collectionResourceRel 与路径

c - 使用 OpenGL 从使用 CUDA 生成的顶点缓冲区对象绘制图像

c - OpenGL glcolor for 循环

objective-c - 如何在 iPhone OpenGL ES 粒子系统中绘制 1000 多个粒子(具有独特的旋转、缩放和 Alpha)而不减慢游戏速度?

iphone - setStatusBarOrientation 在 iOS8 中导致问题

java - 对具有抽象类对象的类进行 Junit 测试

java - 如何确定 3 Card Game to Find Winner 中的纸牌图案?

linux - 无法使用 Linux/Mesa 编译着色器

opengl - glTextureBarrier() 和 glMemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT) 的区别