var scene, camera, renderer, container, aspect, fov, plane, far, mousex, mousey, windowhalfx, windowhalfy, geometry, starstuff, materialoptions, stars; init(); animate(); function init() { container = document.createelement(`div`); document.getelementbyid('star_video').appendchild(container); mousex = 0; mousey = 0; aspect = window.innerwidth / window.innerheight; fov = 40; plane = 1; far = 800; windowhalfx = window.innerwidth / 2; windowhalfy = window.innerheight / 2; camera = new three.perspectivecamera( fov, aspect, plane, far ); camera.position.z = far / 2; scene = new three.scene({ antialias: true }); scene.fog = new three.fogexp2(0x1b1b1b, 0.0001); starforge(); renderer = new three.webglrenderer({ antialias: true, alpha: true }); renderer.setpixelratio((window.devicepixelratio) ? window.devicepixelratio : 1); renderer.setsize(window.innerwidth, 685); renderer.autoclear = false; renderer.setclearcolor(0x000000, 0.0); container.appendchild(renderer.domelement); document.addeventlistener('mousemove', onmousemove, false); } function animate() { requestanimationframe(animate); render(); } function render() { camera.position.x += (mousex - camera.position.x) * 0.005; camera.position.y += (-mousey - camera.position.y) * 0.005; camera.lookat(scene.position); renderer.render(scene, camera); } function starforge() { var amount = 45000; geometry = new three.spheregeometry(1000, 100, 50); materialoptions = { color: new three.color(0xffffff), size: 1.1, transparency: true, opacity: 0.6 }; starstuff = new three.pointsmaterial(materialoptions); for (var i = 0; i < amount; i++) { var item = new three.vector3(); item.x = math.random() * 2000 - 1000; item.y = math.random() * 2000 - 1000; item.z = math.random() * 2000 - 1000; geometry.vertices.push(item); } stars = new three.pointcloud(geometry, starstuff); scene.add(stars); } function onmousemove(e) { mousex = e.clientx - windowhalfx; mousey = e.clienty - windowhalfy; }