mirror of
https://github.com/processing/processing4.git
synced 2026-01-29 03:11:08 +01:00
44 lines
884 B
Plaintext
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;
|
|
}
|
|
}
|
|
|