mirror of
https://github.com/processing/processing4.git
synced 2026-01-29 11:21:06 +01:00
Fixed Framingham and Frames examples in Video, added ImageMask in OpenGL/Shaders
This commit is contained in:
25
java/examples/OpenGL/Shaders/ImageMask/ImageMask.pde
Normal file
25
java/examples/OpenGL/Shaders/ImageMask/ImageMask.pde
Normal file
@@ -0,0 +1,25 @@
|
||||
PImage srcImage;
|
||||
PGraphics maskImage;
|
||||
PShader maskShader;
|
||||
|
||||
void setup() {
|
||||
size(200, 200, P2D);
|
||||
srcImage = loadImage("milan_rubbish.jpg");
|
||||
maskImage = createGraphics(srcImage.width, srcImage.height, P2D);
|
||||
maskImage.noSmooth();
|
||||
maskShader = loadShader("mask.glsl");
|
||||
maskShader.set("maskSampler", maskImage);
|
||||
}
|
||||
|
||||
void draw() {
|
||||
maskImage.beginDraw();
|
||||
maskImage.background(0);
|
||||
maskImage.noStroke();
|
||||
maskImage.fill(255, 0, 0);
|
||||
maskImage.ellipse(mouseX, mouseY, 30, 30);
|
||||
maskImage.endDraw();
|
||||
|
||||
shader(maskShader);
|
||||
image(srcImage, 0, 0, width, height);
|
||||
resetShader();
|
||||
}
|
||||
12
java/examples/OpenGL/Shaders/ImageMask/data/mask.glsl
Normal file
12
java/examples/OpenGL/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