Caméra
Afin d'effectuer tous les calculs liés à la projection en 3D au même endroit, on utilise une classe représentant les caméras pour regrouper les calculs.
Pour les calculs, on utilise le modèle du sténopé (pinhole en anglais) car il est assez simple, et donne des données plutôt correctes. On effectue 2 principales opérations à l'aide de ce modèle :
- Projection d'un point de l'écran dans l'espace : en se basant sur une distance donnée ou calculée pour projeter le point sur le sol, on effectue les opérations inverses de la projection classique d'un point de l'espace sur l'écran, donc multiplie d'abord les coordonnées du point sur l'écran par la matrice des paramètres intrinsèques inverse, ce qui donne les coordonnées du point dans le repère de la caméra, puis en appliquant la transformation de la caméra par rapport au repère global, et en multipliant par la distance du point à la caméra, on obtient les coordonnées du point dans l'espace.
- Projection d'une carte de profondeur : cela revient à peu près à l'opération précédente, sauf que les positions des pixels sont pré-calculées pour accélérer l'opération. Cependant, la transformation des points en coordonnées globale n'est pas appliquée, les points sont placé dans le référentiel de la caméra.