Wenn Du eine "Standard"-Projektionsmatrik benutzt - also mit 'nem Winkel von 90° - dann bedeutet das, dass ein Objekt, das genau eine Einheit von der Kamera entfernt ist, genau zwei Einheiten groß sein muss, um den Bildschirm (vertikal) auszufüllen.
Das kannst Du Dir zunutze machen um zu berechnen, an welcher Pixelposition auf dem Bildschirm sich ein Punkt der 3D-Welt befindet (wobei die Koordinaten des Punktes der 3D-Welt relativ zur Kamera vorliegen müssen, also u.U. erst entsprechend transformiert werden müssen).
v2PosOnScreen = { v3Pos.x * fAspect * v3Pos.z * fScreenWidth , v3Pos.y * v3Pos.z * fScreenHeight } , mit v3Pos = Position des Punktes der 3D-Welt relativ zur Kamera
Umgekehrt kannst Du natürlich eine beliebige Bildschirmposition in Raum-Koordinaten (relativ zur Kamera) berechnen, indem Du die Gleichung umstellst.
Theoretisch kann Dir fScreenWidth und fScreenHeight auch egal sein, da Du Deinen Text wahrscheinlich lieber mit relativen Größen positionieren möchtest...
Ich weiss nicht, ob ich jetzt etwas übersehen habe, aber so habe ich das zumindest mal gemacht (wie ich es in Erinnerung habe)...
Der Winkel der Projektion muss natürlich nicht unbedingt 90° sein. Falls nicht, musst Du noch 'nen Tangens berechnen, aber das sollte klar sein... (wenn Du willst, mach ich Dir 'ne Zeichnung
![;)](wcf/images/smilies/wink.png.pagespeed.ce.L9LRa_F2a5.png)
)
Eine andere Möglichkeit wäre, den Punkt einfach mit der Projektionsmatrix zu multiplizieren