You can turn on glow effect by clicking mouse button or touching. Press any key to save screenshot.
A fork of Sphere Light by razvan comache
xxxxxxxxxx
var sphereArr = [];
var rad = 250;
var iDef = 10;
var jDef = 12;
var glowImg;
var jCount = 0;
var glowFlag = false;
function setup() {
document.body.style.backgroundColor ='#ffffff';
createCanvas(4*windowHeight/3, windowHeight, WEBGL);
glowImg = loadImage('glow.png');
noStroke();
perspective(radians(75), width / height, 0, 1000);
camera(0, 0, 450, 0, 0, 0, 0, 1, 0);
ambientLight(150);
pointLight(255, 255, 255, 255, -300, -300, 300);
}
function draw() {
background(0);
if (glowFlag) { background(10, 10, 65); }
sphereArr = [];
var count = 0;
for (var i = 180; i > -1; i -= iDef) {
for (var j = -180 + jCount; j < 180 + jCount; j += jDef) {
sphereArr[count] = new PointObj(i, j, rad);
count++;
}
}
if (glowFlag) { sphereArr.sort(zOrder); }
for (var k = 0; k < sphereArr.length; k++) {
push();
translate(sphereArr[k].x, sphereArr[k].y, sphereArr[k].z);
if (glowFlag) {
texture(glowImg);
plane(60, 60);
}
ambientMaterial(230, 180, 255, 255);
sphere(3);
pop();
}
jCount += 0.5;
}
function zOrder(obj1, obj2) {
return obj1.z - obj2.z;
}
function PointObj(ai, jay, rado) {
this.x = sin(radians(jay)) * sin(radians(ai)) * rado;
this.y = cos(radians(ai)) * rado;
this.z = cos(radians(jay)) * sin(radians(ai)) * rado;
}
// save jpg
let lapse = 0; // mouse timer
function mousePressed(){
if (millis() - lapse > 400){
glowFlag = !glowFlag;
lapse = millis();
}
}