mirror of
https://github.com/processing/processing4.git
synced 2026-01-30 03:41:15 +01:00
72 lines
1.8 KiB
Plaintext
72 lines
1.8 KiB
Plaintext
// Bad-print shader. Adapted from rom Fluxus Shader Library:
|
|
// http://www.pawfal.org/index.php?page=FluxusHardwareShaderLibrary
|
|
|
|
import controlP5.*;
|
|
|
|
ControlP5 controlP5;
|
|
|
|
PShader badPrint;
|
|
|
|
boolean enabled = true;
|
|
float scaleR = 1.0, scaleG = 1.0, scaleB = 1.0;
|
|
float offsetR = 0.2, offsetG = 0.2, offsetB = 0.2;
|
|
float registerR = 0.2, registerG = 0.2, registerB = 0.2;
|
|
float sizeR = 0.1, sizeG = 0.2, sizeB = 0.1;
|
|
|
|
public void setup() {
|
|
size(800, 800, P3D);
|
|
|
|
noStroke();
|
|
fill(204);
|
|
|
|
badPrint = loadShader(PShader.LIT, "BadPrintFrag.glsl", "BadPrintVert.glsl");
|
|
shader(badPrint);
|
|
|
|
sphereDetail(60);
|
|
|
|
controlP5 = new ControlP5(this);
|
|
controlP5.addToggle("enabled").linebreak();
|
|
controlP5.addSlider("scaleR", 0, 1);
|
|
controlP5.addSlider("scaleG", 0, 1);
|
|
controlP5.addSlider("scaleB", 0, 1).linebreak();
|
|
controlP5.addSlider("offsetR", 0, 1);
|
|
controlP5.addSlider("offsetG", 0, 1);
|
|
controlP5.addSlider("offsetB", 0, 1).linebreak();
|
|
controlP5.addSlider("registerR", 0, 1);
|
|
controlP5.addSlider("registerG", 0, 1);
|
|
controlP5.addSlider("registerB", 0, 1).linebreak();
|
|
controlP5.addSlider("sizeR", 0, 1);
|
|
controlP5.addSlider("sizeG", 0, 1);
|
|
controlP5.addSlider("sizeB", 0, 1).linebreak();
|
|
}
|
|
|
|
public void draw() {
|
|
background(0);
|
|
|
|
if (enabled) {
|
|
shader(badPrint);
|
|
|
|
badPrint.set("Scale", scaleR, scaleG, scaleB);
|
|
badPrint.set("Offset", offsetR, offsetG, offsetB);
|
|
badPrint.set("Register", registerR, registerG, registerB);
|
|
badPrint.set("Size", sizeR, sizeG, sizeB);
|
|
} else {
|
|
resetShader(PShader.LIT);
|
|
}
|
|
|
|
noStroke();
|
|
pointLight(204, 204, 204, 1000, 1000, 1000);
|
|
|
|
pushMatrix();
|
|
translate(width/2, height/2);
|
|
rotateX(frameCount * 0.01);
|
|
rotateY(frameCount * 0.01);
|
|
sphere(200);
|
|
popMatrix();
|
|
|
|
hint(DISABLE_DEPTH_TEST);
|
|
noLights();
|
|
controlP5.draw();
|
|
hint(ENABLE_DEPTH_TEST);
|
|
}
|