la conversion de la position 3d à la 2d la position de l'écran

Je voudrais convertir une position 3d en 2d position de l'écran. J'ai eu un coup d'oeil à une question similaire: La projection d'un point 3D sur un écran en 2D coordonner , mais je ne comprends pas complètement. Je pensais que pour le calcul de la position 2d j'aurais besoin de la matrice de projection, mais je ne vois pas comment il est utilisé, en dehors de la conversion d'un point à l'emplacement de l'espace de coordonnées. D'ailleurs, est-cam.FieldOfView égal à farZ en OpenGL?

Quelqu'un pourrait-il svp m'aider à remplir cette fonction. Sont les paramètres suffisants pour calculer la position 2d? Pos est déjà un vecteur par rapport à la position de la caméra.

       Vector2* convert(Vector3& pos, Matrix4& projectionMatrix, int screenWidth, int screenHeight)
       {
            float ratio = screenWidth / screenHeight; 

            ...

            screenX = screenWidth * ( 1.0f - screenX); 
            screenY = screenHeight * ( 1.0f - screenY);    

            return new Vector2(screenX, screenY); 
       }

OriginalL'auteur Pedro | 2011-10-13