Three.js: convirtiendo la posición 3d a la posición de pantalla 2d

Tengo un objeto 3D con la posición (x, y, z). ¿Cómo puedo calcular la posición de la pantalla (x, y) de ese objeto?

Lo he buscado y una solución es que tengo que averiguar la matriz de proyección y luego multiplicar el punto de posición 3D por esta matriz para proyectarla en una superficie de visualización 2D (pantalla de computadora). Pero no tengo idea de cómo encontrar esta matriz en Three.js.

Intento una función de conversión como esta pero da resultado incorrecto

function Point3DToScreen2D(point3D){
            var screenX = 0;
            var screenY = 0;
            var inputX = point3D.x - camera.position.x;
            var inputY = point3D.y - camera.position.y;
            var inputZ = point3D.z - camera.position.z;
            var aspectRatio = renderer.domElement.width / renderer.domElement.height;
            screenX = inputX / (-inputZ * Math.tan(camera.fov/2));
            screenY = (inputY * aspectRatio) / (-inputZ * Math.tan(camera.fov / 2));
            screenX = screenX * renderer.domElement.width;
            screenY = renderer.domElement.height * (1-screenY);
            return {x: screenX, y: screenY};
        }

Gracias de antemano.

Respuestas a la pregunta(3)

Su respuesta a la pregunta