var camera, scene, renderer;
init();
animate();
function init() {
camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.z = 60;
scene = new THREE.Scene();
// lights
function createLight(color) {
var pointLight = new THREE.PointLight(color, 7, 25);
var geometry = new THREE.SphereGeometry(0.1, 0.1, 0.1);
var material = new THREE.MeshBasicMaterial({color: color});
var sphere = new THREE.Mesh(geometry, material);
pointLight.add(sphere);
return pointLight;
}
for (var i = 0; i < 80; i++) {
window["pointLight" + i] = createLight(Math.random() * 0x04ff00);
scene.add(window["pointLight" + i]);
}
var material = new THREE.MeshPhongMaterial({color: 0x000000, shininess: 300});
var materialred = new THREE.MeshToonMaterial({color: 0xff0000});
var geometry_sphere = new THREE.SphereBufferGeometry(5, 32, 32);
var big_sphere = new THREE.Mesh(geometry_sphere, material);
scene.add(big_sphere);
big_sphere.position.y = 10;
renderer = new THREE.WebGLRenderer({
antialias: true
});
renderer = new THREE.WebGLRenderer({ alpha: true });
renderer.setClearColor( 0x000000, 0 );
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var controls = new THREE.OrbitControls(camera, renderer.domElement);
controls.target.set(0, 10, 0);
controls.update();
window.addEventListener('resize', onWindowResize, false);
}
function onWindowResize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
}
function animate() {
requestAnimationFrame(animate);
scene.rotation.y += 0.005;
render();
}
function render() {
var time = performance.now() * 0.0003;
for (var i = 0; i < 40; i++) {
time += 3 + i;
window["pointLight" + i].position.x = Math.sin(time) * -13 + 0;
window["pointLight" + i].position.y = Math.sin(time * 1) * 13 + 10;
window["pointLight" + i].position.z = Math.sin(time * 1.2) * -13;
}
for (var i = 40; i < 80; i++) {
time += 3 + i;
window["pointLight" + i].position.x = Math.sin(time) * 13 + 0;
window["pointLight" + i].position.y = Math.sin(time * 1) * 13 + 10;
window["pointLight" + i].position.z = Math.sin(time * 1.2) * 13;
}
renderer.render(scene, camera);
}