function onDocumentMouseDown( event ) { event.preventDefault(); mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1; mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1; // find intersections raycaster.setFromCamera( mouse, camera ); var intersects = raycaster.intersectObjects( scene.children ); var vector = new THREE.Vector3().copy( intersects[ 0 ].point ); intersects[ 0 ].object.worldToLocal( vector ); mat.uniforms.mouse.value.x = vector.x; mat.uniforms.mouse.value.y = vector.y; } document.addEventListener( 'mousemove', onDocumentMouseDown, false );