Définition de la vue utilisateur
Lors de l'éxécution du programme il faut entrer la position de la caméra et celle du soleil. Ces deux éléments sont placés sur une demi-sphère dont le centre est le même que celui de la scène.
La position de la caméra permet de determiner l'angle de projection, elle sera toujours placée assez loin de la scène pour la voir dans son ensemble.
La position de soleil permet de définir une direction pour l'éclairage, on le considère comme une source de luminère à une distance infinie et donc tous ses rayons sont parallèls.
Pour définir une position sur une demi sphère il siffit de deux angles : têta qui correspond à la longitude (on tourne autour de l'axe vertical de la demi-sphère) et phi qui correspond à la latitude qui permet de se placer entre l'équateur et le pôle.
Projection
Une fois la caméra placée, on a une direction pour projeter la surface 3D sur un plan pour avoir une image 2D affichable sur un écran.
Pour cela il faut ressortir les formules de trigonométrie, jongler un peu avec les cosinus et sinus pour exprimer les coordonnées des axes du repère 3D dans un repère 2D.
Avec un repère 3D (x, y,z), un repère 2D (u,v) et les angles têta et phi définis dans la vue utilisateur on obtient:
u = - sin(têta)×x + cos(têta)×y
v = sin(phi)×[cos(têta)×x + sin(têta)×y] + cos(phi)×z
L'algorithme du peintre
Lorsque l'on trace un paysage montagneux, certaines faces sont cachées par d'autres et il souvent très est difficile de déterminer si une face est visible.
L'algorithme du peintre réponds simplement à ce problème : il suffit de tracer toutes les faces en commençant pas les plus éloignées.
Ainsi, les faces obstructrices seront déssinées "sur" les faces cachées et les faces cachées ne seront donc pas visibles.
Ici la caméra de l'utilsateur se situe sur un cercle entourant le carré de terrain, donc celon l'angle de cell-ci il est facile de déterminer le coin du terrain le plus éloigné et ensuite de définir un sens de parcours du relief.