// ambient
// James Brink, 8/1/2020
let can4, can5, can6, can9, canP5;
// for canvas 3
let can1, can3, grSlider;
function setup() {
s1 = createSpan("
Testing ambientLight (1, 1, & 3 arguments)"
+ " and ambientMaterial (3 arguments).
");
s1.parent("p5");
can1 = createCanvasClass(100, 100, WEBGL);
can1.parent("p5");
can1.background(0);
can1.noStroke();
can1.ambientLight(200);
can1.ambientMaterial(70, 130, 230);
can1.sphere(40);
let s2 = createSpan(" ");
s2.parent("p5");
can2 = createCanvasClass(100, 100, WEBGL);
can2.parent("p5");
can2.background(70);
can2.ambientLight(100); // white light
can2.ambientMaterial(255, 0, 255);
can2.box(30);
let s3 = createSpan(" ");
s3.parent("p5");
can3 = createCanvasClass(100, 100, WEBGL);
can3.parent("p5");
grSlider = createSlider(0, 255, 0);
grSlider.parent("p5");
let s4 = createSpan("
Testing emissiveMaterial (3 arguments) (and"
+ " ambientLight). ");
s4.parent("p5");
can4 = createCanvasClass(100, 100, WEBGL);
can4.parent("p5");
can4.background(0);
can4.noStroke();
can4.ambientLight(0);
can4.emissiveMaterial(130, 230, 0);
can4.sphere(40);
let s5 = createSpan("
Testing specularMaterial (1 argument), ambientLight (3"
+ " arguments), and pointLight (6 arguments). ");
s5.parent("p5");
can5 = createCanvasClass(100, 100, WEBGL);
can5.parent("p5");
can5.background(0);
can5.ambientLight(50, 50, 50);
can5.pointLight(250, 250, 250, 100, 100, 30);
can5.specularMaterial(250);
can5.sphere(40);
let s9 = createSpan("
Tests directionalLight (6 arguments). ");
s9.parent("p5");
can9 = createCanvasClass(100, 100, WEBGL);
can9.parent("p5");
can9.background(0);
can9.noStroke();
let dirX = .6;
let dirY = -.8;
can9.directionalLight(50, 50, 250, -dirX, -dirY, -1);
can9.sphere(40);
let s6 = createSpan("
Tests specularMaterial (1 argument),"
+ " specularColor (3 arguments), pointLight (6 arguments), shininess,"
+ " and ambientLight. ");
s6.parent("p5");
can6 = createCanvasClass(100, 100, WEBGL);
can6.parent("p5");
can6.noStroke();
can6.background(0);
can6.shininess(20);
can6.ambientLight(50);
can6.specularColor(255, 0, 0);
can6.pointLight(255, 0, 0, 0, -50, 50);
can6.specularColor(0, 255, 0);
can6.pointLight(0, 255, 0, 0, 50, 50);
can6.specularMaterial(255);
can6.sphere(40);
/*
let s8 = createSpan("
Tests directionalLight. ");
s8.parent("p5");
can9 = createCanvasClass(100, 100, WEBGL);
can9.parent("p5");
can9.background(0);
can9.noStroke();
let dirX = .6;
let dirY = -.8;
can9.directionalLight(50, 50, 250, -dirX, -dirY, -1);
can9.sphere(40);
*/
/* let s9 = createSpan(" p5 canvas -> ");
s9.parent("p5");
canP5 = createCanvas(100, 100, WEBGL);
canP5.parent("p5");
*/
let s10 = createSpan("
Testing spotLight (and ambientLight). ");
s10.parent("p5");
can10 = createCanvasClass(100, 100, WEBGL);
can10.parent("p5");
can10.background(0);
//move your mouse to change light position
let locX = 10; // mouseX - width / 2;
let locY = 10; // mouseY - height / 2;
// to set the light position,
// think of the world's coordinate as:
// -width/2,-height/2 -------- width/2,-height/2
// | |
// | 0,0 |
// | |
// -width/2,height/2--------width/2,height/2
can10.ambientLight(50);
can10.spotLight(0, 250, 0, locX, locY, 100, 0, 0, -1, Math.PI / 16);
can10.noStroke();
can10.sphere(40);
} // setup
function draw() {
/*
can1.background(0);
can1.noStroke();
print("can1");
can1.ambientLight(200);
can1.ambientMaterial(70, 130, 230);
can1.sphere(40);
alert("after can1");
*/
can3.background(70);
can3.ambientLight(0, 250, 0); // green light
can3.ambientMaterial(255, grSlider.value(), 255);
can3.box(30);
/*
can4.background(0);
can4.noStroke();
can4.ambientLight(0);
can4.emissiveMaterial(130, 230, 0);
can4.sphere(40);
*/
/*
can5.background(0);
can5.ambientLight(50);
can5.pointLight(250, 250, 250, 100, 100, 30);
can5.specularMaterial(250);
can5.sphere(40);
*/
/*
can6.background(0);
can6.shininess(20);
can6.ambientLight(50);
can6.specularColor(255, 0, 0);
can6.pointLight(255, 0, 0, 0, -50, 50);
can6.specularColor(0, 255, 0);
can6.pointLight(0, 255, 0, 0, 50, 50);
can6.specularMaterial(255);
can6.sphere(40);
*/
/*
can9.background(0);
let dirX = (can9.mouseX / can9.width - 0.5) * 2;
let dirY = (can9.mouseY / can9.height - 0.5) * 2;
can9.directionalLight(50, 50, 250, -dirX, -dirY, -1);
can9.sphere(40);
*/
/* background(0);
//move your mouse to change light direction
let dirX = (mouseX / width - 0.5) * 2;
let dirY = (mouseY / height - 0.5) * 2;
print("p5 " + dirX + " " + dirY);
directionalLight(0, 100, 250, -dirX, -dirY, -1);
noStroke();
sphere(40);
*/
} // draw