Bon allez, un petit écart de conduite, je vais ici faire du code, du vrai, parce que j'ai pas mal cherché sur le sujet et les réponses sont pas forcément simple à trouver quand on n'a jamais fait d'OpenGL. Comme je le disais précédemment, je travaille sur un moteur 3D OpenGL sur Android. Mais sous Android, on n'utilise pas OpenGL de base mais OpenGL ES (OpenGL for Embedded Systems), qui ne contient pas autant de fonctions que la version standard.

Et notamment l'un des manque et qu'il n'y a pas de fonction gluPerspective, qui permet de spécifier l'angle de vue, et donc le zoom de la camera. Je ne me suis pas encore penché à fond sur le fonctionnement des matrices caméras, et je me sentais mal refaire les maths dans mon coin, j'ai donc cherché une autre astuce, que j'ai trouvé sur un forum iPhone. La formule, je la met pour ceux que cela peut intéresser, et surtout pour en avoir une trace quelque part ;).

void perspective(double fov, double aspectRatio, double zNear, double zFar) {
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
double yTop = zNear * tan(fovy * M_PI / 360.0);
double yBottom = -yTop;
double xLeft = yBottom * aspectRatio;
double xRight = yTop * aspectRatio;
glFrustumf(xLeft, xRight, yBottom, yTop, zNear, zFar);
glMatrixMode(GL_MODELVIEW);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}

Voila et désolé pour tous ceux qui ne sont pas programmeur parmi mes lecteurs, promis je ne le ferait plus... enfin pas tout de suite ;)

Caméra - Merveilleux instrument de tourisme auquel le voyageur fait voir le pays avant de le voir lui-même.

Pierre Daninos