Files
processing4/java/examples/Topics/Shaders/ToonShading/ToonShading.pde
2012-08-31 17:13:27 +00:00

44 lines
884 B
Plaintext

/**
* Toon Shading.
*
* Example showing the use of a custom lighting shader in order
* to apply a "toon" effect on the scene. Based on the glsl tutorial
* from lighthouse 3D:
* http://www.lighthouse3d.com/tutorials/glsl-tutorial/toon-shader-version-ii/
*/
PShader toon;
boolean shaderEnabled = true;
void setup() {
size(640, 360, P3D);
noStroke();
fill(204);
toon = loadShader("ToonFrag.glsl", "ToonVert.glsl");
}
void draw() {
if (shaderEnabled == true) {
shader(toon);
}
noStroke();
background(0);
float dirY = (mouseY / float(height) - 0.5) * 2;
float dirX = (mouseX / float(width) - 0.5) * 2;
directionalLight(204, 204, 204, -dirX, -dirY, -1);
translate(width/2, height/2);
sphere(120);
}
void mousePressed() {
if (shaderEnabled) {
shaderEnabled = false;
resetShader();
}
else {
shaderEnabled = true;
}
}