Bonjour,

Je programme un jeu en 2D : dans le gameplay, la caméra ne bouge pas, on est toujours en vue de dessus.
En glOrtho tout se passe bien.

J'aimerais passer à la perspective : c'est plus joli (quand un cube bouge à droite ou à gauche dans l'écran, on le voit bouger "en 3D tout en restant de dessus").
Pour cela j'ai compris que je devais passer de glOrtho à gluPerspective + gluLookAt.

Toute ma scène tient dans un rectangle (un GL_QUAD) dont les dimensions sont celles de la fenêtre, et je veux que ce rectangle soit bien cadré dans la fenêtre, pile aux dimensions de la fenêtre.

Mon problème est le suivant : Je ne sais pas comment calculer les paramètres de gluPerspective et gluLookAt pour que le GL_QUAD remplisse la fenêtre.
Des idées ?

PS : Voici un bout de code qui me permet de passer de l'un à l'autre facilement en transformant le TRUE en FALSE :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
	if (TRUE)
	{
		glMatrixMode(GL_PROJECTION);
		glLoadIdentity();
		glOrtho(0, w, 0, h, -50, 50); 
		glMatrixMode(GL_MODELVIEW);
		glLoadIdentity();
	}
	else 
	{
		glMatrixMode(GL_PROJECTION);
		glLoadIdentity();
		gluPerspective(60, w/h, 100, 20000);
		glMatrixMode(GL_MODELVIEW);
		glLoadIdentity();
	 	gluLookAt(w / 2, h / 2, 500, 
				  w / 2, h / 2,  0, 
				  0, 1, 0);
	}