Reflection

reflection.pde
/**
 * Reflection 
 * by Simon Greenwold. 
 * 
 * Vary the specular reflection component of a material
 * with the horizontal position of the mouse. 
 */

void setup() {
  size(640, 360, P3D);
  noStroke();
  colorMode(RGB, 1);
  fill(0.4f);
}

void draw() {
  background(0);

  translate(width / 2, height / 2);

  // Set the specular color of lights that follow
  lightSpecular(1.0f, 1.0f, 1.0f);
  directionalLight(0.8f, 0.8f, 0.8f, 0, 0, -1);

  float s = mouseX / (float)width;

  specular(s, s, s);

  sphere(120);
}