2011-05-26 9 views
9

J'utilise une API Lua. J'essaie de transformer les coordonnées spatiales 3D en coordonnées spatiales 2D. J'ai demandé google mais je ne trouve rien d'autre que des extraits utilisant la fonction OpenGL. Je n'ai pas besoin de code source ou quoi que ce soit d'autre qu'un simple moyen de le faire? Je peux acquérir la perspective de la caméra, la position d'origine à transformer, la taille de la fenêtre et les proportions si cela peut vous aider? Merci d'avance pour toute suggestion :)Comment convertir les coordonnées spatiales 3D en coordonnées 2D?

+2

To 2D Coordonnées dans quel espace? – Bart

+0

Désolé, je voulais taper ** écran ** coordonnées. – Conros

Répondre

11

Si vous parlez de la transformation de l'espace mondial (x, y, z) les coordonnées à l'écran de l'espace (u, v) les coordonnées, l'approche de base est:

u = x/z; 
v = y/z; 

Si la caméra n'est pas à l'origine, transformez (x, y, z) par la matrice de vue avant la matrice de projection. Vous pouvez également ajuster la perspective de la caméra, le rapport d'aspect, etc. auquel cas je me référerai à this Wikipedia article. Mes excuses si vous cherchez quelque chose de spécifique à l'API Lua, que je ne connais pas.

+0

: D! Merci, le diagramme sur le wiki a aidé un peu. J'aurais dû y penser, haha. – Conros

+0

Il est important de noter qu'il ne s'agit pas d'une véritable projection de perspective mais d'une projection dite de "perspective faible", un hybride de perspective orthographique –

+0

Merci d'avoir lu l'article du wiki Adrian. – Birdasaur

Questions connexes