La projection perspective est la transformation géométrique réalisée par un système optique qui forme l'image d'objets situés dans l'espace. Cette transformation est utilisée pour représenter des objets sur une image.
Pour définir géométriquement la formation d'une image par un système optique, on considère le cas simple d'une lentille mince convergente, de centre O. Le plan image est à une distance d de la lentille. En toute rigueur, seuls les points conjugués de ce plan image ont une image nette. En pratique, tout système optique est pourvu d'une certaine profondeur de champ, qui permet d'obtenir des images assez nettes d'objets situés dans l'espace.
Figure pleine pageLa figure montre deux points de l'espace A et B et leur projection A' et B' sur le plan image. En pratique, ces images sont plus ou moins nettes en fonction de l'ouverture de la lentille, de la position des points objets et des aberrations géométriques de la lentilles. Un système optique simple réalisant cette projection est le sténopé (pinhole camera) : le point O représente alors le trou par où passe la lumière. Théoriquement, un sténopé dont le trou est infiniment petit réalise une image parfaite. Le sténopé est toutefois très difficile à utiliser en raison de la très faible quantité de lumière qui franchit le trou (de l'ordre du millimètre).
L'application qui transforme les points de l'espace en leur projection sur le plan image est la projection perspective. Le point O est le centre de la projection. L'axe Oz est par définition perpendiculaire au plan image. Il ne s'agit pas obligatoirement de l'axe de symétrie de la lentille ou du système optique. Par exemple, dans les chambres photographiques, l'inclinaison de la lentille par rapport à cet axe est modifiée de manière à assurer le maximum de netteté sur tout le plan image. Seules les positions du centre O et du plan image déterminent la forme des objets sur l'image, c'est pourquoi l'axe Oz est défini de cette manière.
La projection produit une image renversée par rapport aux objets. Pour obtenir une image non renversée, et faciliter les calculs, on considère plutôt une projection sur un plan image situé en avant du centre de projection.
Figure pleine pageOn adopte la convention consistant à viser dans la direction des Z négatifs, qui permet de voir le repère OXY dans le sens direct (c'est aussi la convention utilisée fréquemment en optique). La distance d elle-même est prise négative. Les coordonnées du point image sont :
Ces deux relations définissent la projection perspective. Il s'agit d'un cas particulier de transformations appelées transformations projectives, dans lesquels les coordonnées sont divisées par une fonction des coordonnées (ici zA).
On voit qu'un objet donné a une image dont la taille est inversement proportionnelle à sa distance au centre optique.
Les coordonnées homogènes sont utilisées pour traiter sous forme matricielle les transformations affines. Une 4ième coordonnée w est ajoutée aux coordonnées du point objet A :
Cette matrice colonne représente en fait le point de coordonnées :
Pour utiliser les coordonnées homogènes afin de faire des transformations affines, on pose w=1. Pour obtenir la projection perspective, il suffit de multiplier x et y par d et de diviser par w=z. Cela est obtenu en multipliant la matrice colonne X (avec w=1) par la matrice suivante :
Cette multiplication donne en effet la matrice :
En divisant par la 4ième coordonnée, on obtient bien la projection perspective. La matrice P est la matrice de perspective. C'est la dernière matrice à appliquer aux points de l'espace, après les transformations affines.
Dans l'API OpenGL, la multiplication par la matrice de perspective est le plus souvent effectuée par le processeur graphique GPU. La division par w est appelée division perspective; elle est effectuée par le GPU.
Les coefficients a et b n'interviennent pas dans les coordonnées du point image; ils sont utiles lorsqu'on veut garder l'information de distance des points, par exemple pour l'algorithme du Z-buffer.
L'inverse de la matrice de perspective est :
Le coefficient b doit donc être non nul, ce qui permet par ailleurs de garder l'information de distance après la division perspective (nécessaire pour l'algorithme du Z-buffer).
La projection perspective donne une représentation réaliste de la formation d'une image par un système optique. Elle a cependant l'inconvénient de donner des tailles sur l'image qui dépendent de la distance de l'objet. Pour certains schémas techniques (en CAO), on préfère une projection orthoscopique. La projection orthoscopique est définie par :
Autrement dit, les coordonnées (x,y) du point objet dans l'espace donnent les coordonnées du point image. La matrice de la projection orthoscopique est l'identité.
Géométriquement, celà revient à placer le centre optique à l'infini, comme le montre la figure suivante :
Figure pleine pageLa distance d tend vers l'infini (et zA aussi puisque le centre optique est à l'origine). Dans un système optique réel, on obtient approximativement une projection orthoscopique lorsque les rayons sont très peu inclinés par rapport à l'axe optique. Par exemple, dans une photographie d'une scène lointaine prise au téléobjectif (longue focale), l'effet de perspective est très faible. Ce mode de prise de vue est préférable pour une exploitation scientifique, car des objets de taille identique ont une image de la même taille, quelque soit leur distance.