mirror of
https://github.com/processing/processing4.git
synced 2026-02-08 08:09:32 +01:00
48 lines
1.0 KiB
Plaintext
48 lines
1.0 KiB
Plaintext
// Separable-blur shader (works by applying two successive passes
|
|
// in each direction of the image)
|
|
|
|
PShader blur;
|
|
PGraphics src;
|
|
PGraphics pass1, pass2;
|
|
|
|
void setup() {
|
|
size(200, 200, P2D);
|
|
orientation(LANDSCAPE);
|
|
|
|
blur = loadShader("blur.glsl");
|
|
blur.set("sigma", 5.0f);
|
|
|
|
src = createGraphics(width, height, P2D);
|
|
|
|
pass1 = createGraphics(width, height, P2D);
|
|
pass1.noSmooth();
|
|
|
|
pass2 = createGraphics(width, height, P2D);
|
|
pass2.noSmooth();
|
|
}
|
|
|
|
void draw() {
|
|
src.beginDraw();
|
|
src.background(0);
|
|
src.fill(255);
|
|
src.ellipse(width/2, height/2, 100, 100);
|
|
src.endDraw();
|
|
|
|
// Applying the blur shader along the vertical direction
|
|
blur.set("horizontalPass", 0);
|
|
pass1.beginDraw();
|
|
pass1.shader(blur);
|
|
pass1.image(src, 0, 0);
|
|
pass1.endDraw();
|
|
|
|
// Applying the blur shader along the horizontal direction
|
|
blur.set("horizontalPass", 1);
|
|
pass2.beginDraw();
|
|
pass2.shader(blur);
|
|
pass2.image(pass1, 0, 0);
|
|
pass2.endDraw();
|
|
|
|
image(pass2, 0, 0);
|
|
}
|
|
|