【发布时间】:2019-01-06 02:31:40
【问题描述】:
我扩展了 Image 类来为这个演员添加模糊着色器。它适用于全屏背景图像,但不适用于小演员。
我的图标是从 TextureAtlas 中提取的。
private ShaderProgram shader;
private float radius = 2f;
public BlurActor(Texture tex){
super(tex);
initShader();
}
public BlurActor(Sprite sprite){
super(sprite);
initShader();
}
private void initShader(){
shader = new ShaderProgram(Gdx.files.internal("shaders/blur.vert"), Gdx.files.internal("shaders/blur.frag"));
shader.begin();
shader.setUniformf("dir", 0.0f, 0.0f);
shader.setUniformf("resolution", getHeight());
shader.setUniformf("radius", radius);
shader.end();
}
@Override
public void draw(Batch batch, float alpha){
batch.setShader(shader);
shader.setUniformf("dir", 1.0f, 1.0f);
shader.setUniformf("radius", radius);
getDrawable().draw(batch, getX(), getY(), getWidth() * getScaleX(), getHeight() * getScaleY());
batch.setShader(null);
}
【问题讨论】:
-
需要查看您的实际着色器以了解它如何为您提供帮助。