Three.js: konwertowanie pozycji 3d na pozycję ekranu 2d

Mam obiekt 3D z pozycją (x, y, z). Jak mogę obliczyć pozycję ekranu (x, y) tego obiektu?

Poszukuję go i jedno z rozwiązań polega na tym, że muszę znaleźć macierz projekcji, a następnie pomnożyć punkt położenia 3D przez tę matrycę, aby rzutować ją na jakąś powierzchnię wyświetlania 2D (ekran komputera). Ale nie mam pojęcia, jak znaleźć tę macierz w Three.js.

Próbuję takiej funkcji konwersji, ale daje ona niepoprawny wynik

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

Z góry dziękuję.

questionAnswers(3)

yourAnswerToTheQuestion