mirror of
https://github.com/processing/processing4.git
synced 2026-01-30 11:51:54 +01:00
Adding the shader examples
This commit is contained in:
34
java/examples/Topics/Shaders/ImageMask/ImageMask.pde
Normal file
34
java/examples/Topics/Shaders/ImageMask/ImageMask.pde
Normal file
@@ -0,0 +1,34 @@
|
||||
/**
|
||||
* Image Mask
|
||||
*
|
||||
* Move the mouse to reveal the image through the dynamic mask.
|
||||
*/
|
||||
|
||||
PShader maskShader;
|
||||
PImage srcImage;
|
||||
PGraphics maskImage;
|
||||
|
||||
void setup() {
|
||||
size(640, 360, P2D);
|
||||
srcImage = loadImage("leaves.jpg");
|
||||
maskImage = createGraphics(srcImage.width, srcImage.height, P2D);
|
||||
maskImage.noSmooth();
|
||||
maskShader = loadShader("mask.glsl");
|
||||
maskShader.set("maskSampler", maskImage);
|
||||
background(0);
|
||||
}
|
||||
|
||||
void draw() {
|
||||
maskImage.beginDraw();
|
||||
maskImage.background(0);
|
||||
if (mouseX != 0 && mouseY != 0) {
|
||||
maskImage.noStroke();
|
||||
maskImage.fill(255, 0, 0);
|
||||
maskImage.ellipse(mouseX, mouseY, 50, 50);
|
||||
}
|
||||
maskImage.endDraw();
|
||||
|
||||
shader(maskShader);
|
||||
image(srcImage, 0, 0, width, height);
|
||||
}
|
||||
|
||||
12
java/examples/Topics/Shaders/ImageMask/data/mask.glsl
Normal file
12
java/examples/Topics/Shaders/ImageMask/data/mask.glsl
Normal file
@@ -0,0 +1,12 @@
|
||||
uniform sampler2D textureSampler;
|
||||
uniform sampler2D maskSampler;
|
||||
|
||||
uniform vec2 texcoordOffset;
|
||||
varying vec4 vertColor;
|
||||
varying vec4 vertTexcoord;
|
||||
|
||||
void main() {
|
||||
vec4 texColor = texture2D(textureSampler, vertTexcoord.st).rgba;
|
||||
vec4 maskColor = texture2D(maskSampler, vec2(vertTexcoord.s, 1.0 - vertTexcoord.t)).rgba;
|
||||
gl_FragColor = mix(texColor, vec4(0, 0, 0, 0), 1.0 - maskColor.r);
|
||||
}
|
||||
Reference in New Issue
Block a user