This page demonstates that ambientLight() and directionalLight()
for Processing JS work correctly on a sphere.
// Demo written by Andor Salga
void setup()
{
size(200,200,OPENGL);
}
void draw()
{
background(0);
float x = (mouseX-100.0f)/100.0f;
float y = (mouseY-100.0f)/100.0f;
float m = mag(x,y);
x /= m;
y /= m;
noStroke();
ambientLight(4 * y, 4 * x, 0);
directionalLight(33*x,66,99*y, -x, -y, 0);
translate(width/2.0f, height/2.0f, 2);
sphere(50);
}