This page tests to make sure ambientLight() and directionalLight()
for Processing JS work correctly on boxes.
// Test written by Andor Salga int startX, startY; int x, y; int boxCounter = 1; int NUM_OBJECTS_PER_ROW = 13; boolean isDone = false; void setup() { size(500,500,OPENGL); startX = width/2 - 60; startY = height/2 - 70; x = startX; y = startY; } void draw() { background(100,135,100); drawBoxes(); } void drawBoxes() { camera(); noStroke(); fill(255); drawNextBox(); // single value noFill(); drawNextBox(); // single value fill(1); drawNextBox(); fill(50); drawNextBox(); fill(128); drawNextBox(); fill(200); drawNextBox(); fill(255); drawNextBox(); //////////////////////////////////////////////// // single values for color, color - single value //////////////////////////////////////////////// //ambientLight(128, 0, 0); fill(color(0)); drawNextBox(); fill(color(1)); drawNextBox(); fill(color(50)); drawNextBox(); fill(color(200)); drawNextBox(); fill(color(255)); drawNextBox(); /////////////////////////////// // single value - hex no alpha /////////////////////////////// fill(#000000); drawNextBox(); fill(#808080); drawNextBox(); fill(#FFFFFF); drawNextBox(); noFill(); drawNextBox(); directionalLight( 0, 0, 128, 0, 1, 0 ); directionalLight( 0, 128, 0, 1, 0, -1 ); fill(#00FF00); drawNextBox(); fill(#0000FF); drawNextBox(); fill(#FFFF00); drawNextBox(); fill(#FF00FF); drawNextBox(); fill(#00FFFF); drawNextBox(); fill(#214263); drawNextBox(); /////////////////////////////////////////////// // single value - color, color multiple values ////////////////////////////////////////////// fill(color(0,0,0)); drawNextBox(); fill(color(128,128,128)); drawNextBox(); fill(color(255,255,255)); drawNextBox(); fill(color(255,0,0)); drawNextBox(); fill(color(0,255,0)); drawNextBox(); fill(color(0,0,255)); drawNextBox(); fill(color(255,255,0)); drawNextBox(); fill(color(255,0,255)); drawNextBox(); fill(color(0,255,255)); drawNextBox(); fill(color(33,66,99)); drawNextBox(); ///////////////////////////////// // double values - color + alpha ///////////////////////////////// directionalLight( 128, 0, 0, -1, 0, 0 ); fill(color(0,0,0),255); drawNextBox(); fill(color(128,128,128),255); drawNextBox(); fill(color(255,255,255),255); drawNextBox(); fill(color(255,0,0),255); drawNextBox(); fill(color(0,255,0),255); drawNextBox(); fill(color(0,0,255),255); drawNextBox(); fill(color(255),255); drawNextBox(); fill(color(0,0,255),255); drawNextBox(); fill(color(0,255,0),255); drawNextBox(); fill(color(255,0,0),255); drawNextBox(); fill(color(255),255); drawNextBox(); fill(color(255),255); drawNextBox(); fill(color(255),255); drawNextBox(); fill(color(128),255); drawNextBox(); fill(color(128),255); drawNextBox(); // hex + alpha fill(#000000,255); drawNextBox(); fill(#808080,255); drawNextBox(); fill(#FFFFFF,255); drawNextBox(); fill(#FF0000,255); drawNextBox(); fill(#00FF00,255); drawNextBox(); fill(#0000FF,255); drawNextBox(); fill(#FFFF00,255); drawNextBox(); fill(#FF00FF,255); drawNextBox(); fill(#00FFFF,255); drawNextBox(); fill(#214263,255); drawNextBox(); //////////////// // gray + alpha //////////////// fill(0, 255); drawNextBox(); fill(0, 255); drawNextBox(); fill(0, 255); drawNextBox(); fill(1, 255); drawNextBox(); fill(1, 255); drawNextBox(); fill(1, 255); drawNextBox(); fill(50, 255); drawNextBox(); fill(50, 255); drawNextBox(); fill(50, 255); drawNextBox(); fill(128, 255); drawNextBox(); fill(128, 255); drawNextBox(); fill(128, 255); drawNextBox(); fill(255, 255); drawNextBox(); fill(255, 255); drawNextBox(); fill(255, 255); drawNextBox(); /////////////////////// // triple values r,g,b ////////////////////// noLights(); directionalLight(128, 64, 0, 1, 0, -1); fill(0,0,0); drawNextBox(); fill(128,128,128); drawNextBox(); fill(255,255,255); drawNextBox(); fill(255,0,0); drawNextBox(); noFill(); drawNextBox(); fill(0,0,255); drawNextBox(); fill(255,255,0); drawNextBox(); fill(255,0,255); drawNextBox(); fill(0,255,255); drawNextBox(); fill(33,66,99); drawNextBox(); /////////////// // quad values /////////////// directionalLight( 0, 128, 128, 1, 1, 0 ); fill(0, 255); drawNextBox(); fill(0, 255); drawNextBox(); fill(0, 255); drawNextBox(); fill(1, 255); drawNextBox(); fill(1, 255); drawNextBox(); fill(1, 255); drawNextBox(); fill(50, 255); drawNextBox(); fill(50, 255); drawNextBox(); fill(50, 255); drawNextBox(); fill(128, 255); drawNextBox(); fill(128, 255); drawNextBox(); fill(128, 255); drawNextBox(); fill(255, 255); drawNextBox(); fill(255, 255); drawNextBox(); fill(255, 255); drawNextBox(); fill(0,0,0,255); drawNextBox(); fill(0,0,0, 255); drawNextBox(); fill(0,0,0, 255); drawNextBox(); fill(128,128,128, 255); drawNextBox(); fill(128,128,128, 255); drawNextBox(); fill(128,128,128, 255); drawNextBox(); fill(255,255,255, 255); drawNextBox(); // !! fill(255,255,255, 255); drawNextBox(); fill(255,255,255, 255); drawNextBox(); fill(255,0,0, 255); drawNextBox(); fill(255,0,0, 255); drawNextBox(); fill(255,0,0, 255); drawNextBox(); fill(0,255,0, 255); drawNextBox(); fill(0,255,0, 255); drawNextBox(); fill(0,255,0, 255); drawNextBox(); fill(33,66,99, 255); drawNextBox(); fill(33,66,99, 255); drawNextBox(); fill(33,66,99, 255); drawNextBox(); /// extras directionalLight( 128, 128, 128, 0, -1, 0 ); fill(#00FF00); drawNextBox(); fill(#0000FF); drawNextBox(); fill(#FFFF00); drawNextBox(); fill(#FF00FF); drawNextBox(); fill(#00FFFF); drawNextBox(); fill(#214263); drawNextBox(); fill(#00FF00); drawNextBox(); fill(#0000FF); drawNextBox(); fill(#FFFF00); drawNextBox(); fill(#FF00FF); drawNextBox(); fill(#00FFFF); drawNextBox(); fill(#214263); drawNextBox(); fill(255,255,255, 255); drawNextBox(); fill(255,255,255, 255); drawNextBox(); fill(255,0,0, 255); drawNextBox(); fill(255,0,0, 255); drawNextBox(); fill(255,0,0, 255); drawNextBox(); fill(0,255,0, 255); drawNextBox(); fill(0,255,0, 255); drawNextBox(); fill(0,255,0, 255); drawNextBox(); fill(33,66,99, 255); drawNextBox(); fill(33,66,99, 255); drawNextBox(); strokeWeight(1); stroke(128,0,0,255); directionalLight( 64, 255, 0, 0, 0, -1 ); fill(33,66,99, 255); drawNextBox(); fill(0, 255); drawNextBox(); fill(0, 255); drawNextBox(); fill(0, 255); drawNextBox(); fill(1, 255); drawNextBox(); fill(1, 255); drawNextBox(); fill(1, 255); drawNextBox(); fill(50, 255); drawNextBox(); fill(50, 255); drawNextBox(); fill(50, 255); drawNextBox(); fill(128, 255); drawNextBox(); fill(128, 255); drawNextBox(); fill(128, 255); drawNextBox(); fill(255, 255); drawNextBox(); fill(255, 255); drawNextBox(); fill(255, 255); drawNextBox(); isDone = true; } void drawNextBox() { if(isDone){ isDone = false; boxCounter = 1; x = startX; y = startY; } x += 10; if( boxCounter % NUM_OBJECTS_PER_ROW-1 == 0 ) { y += 10; x = startX; } pushMatrix(); translate(x, y, 320); box(5); popMatrix(); boxCounter++; }