Three.js: la conversion de la position 3d à la 2d la position de l'écran

J'ai un objet 3D à la position(x,y,z). Comment puis-je calculer la position de l'écran(x,y) de cet objet?

Je recherche pour elle et la seule solution est que je dois trouver la matrice de projection, puis multiplier la position 3D du point par cette matrice pour la projeter sur 2D surface de visualisation (écran d'ordinateur). Mais je n'ai aucune idée de comment trouver cette matrice Three.js.

J'essaie une fonction de conversion comme ça, mais il donne un résultat incorrect

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};
        }

Remercie à l'avance.

OriginalL'auteur user1533481 | 2012-07-18