globals = {
let renderer = new THREE.WebGLRenderer({antialias:true});
renderer.setSize( width, HEIGHT );
let scene = new THREE.Scene();
let camera = new THREE.PerspectiveCamera(70, width/HEIGHT, 1, 1000);
camera.position.z = HEIGHT / (2 * Math.tan((70 * (Math.PI / 180)) / 2) );
let myFBO = new FBO(TEXTURE_SIZE);
let particles = new Particles(width, renderMaterial);
scene.add( particles );
renderer.render( myFBO.scene, myFBO.orthoCamera, myFBO.rtt, true );
particles.material.uniforms.positions.value = myFBO.rtt;
let mouseX = 0;
let moving = false;
let targetRotation = 0;
let rotationOnDown = 0;
let o = {
renderer,
scene,
particles,
targetRotation,
camera
}
renderer.domElement.addEventListener("mousedown", (e) =>{
console.log("down")
mouseX = e.clientX;
moving = true;
rotationOnDown = scene.rotation.y;
});
renderer.domElement.addEventListener("mousemove", (e) =>{
if(!moving) return;
o.targetRotation = rotationOnDown + ( e.clientX - mouseX ) * 0.02;
});
renderer.domElement.addEventListener("mouseup", (e) =>{
moving = false;
});
renderer.domElement.addEventListener("mouseout", (e) =>{
moving = false;
});
return o;
}