Get touch coordinates from screen touch / mouse click

Hey guys,

I am currently moving a particle system around my scene on click. It seems to be working great until I move the camera around. I basically need to know where I am touching the screen regardless of camera direction so the effect is scaled properly and where I am tapping.

This is the relevant part of my onMouseDown(event) function

 var mouse = new THREE.Vector2();
        if(event.type == "click"){
          mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
          mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
          mouse.x = (event.touches[0].clientX / window.innerWidth) * 2 - 1;
          mouse.y = -(event.touches[0].clientY / window.innerHeight) * 2 + 1;

And then basically if the raycast returns nothing, it grabs the mouse.x and mouse.y and converts to screen position, at least I thought it did?

function convertWorldTouchToScreenPos(x,y){
        var vector = new THREE.Vector3(x, y, 0.5);
        var dir = vector.sub(;
        var distance = / dir.z;
        var pos =;
        return pos;

Thoughts? Thanks guys!

So I ended up creating a large plane that billboards with the camera, set visible to false, then I just raycast against it and grab the intersection point on that and pass to the particle position and this is working great!