Bonjour!
Voici mon probleme : J'affiche une maison 3D tout mes objets dans la maison sont au format 3DS max (.3ds), dans une des pièces j'ai un mirroir ou je veux biensur afficher mes objets de la piece. Mes objets de la pieces sont affichés comme cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
void drawChambre()
{
	glPushMatrix();
	glRotatef(-90,0,1,0);
	glRotatef(-90,1,0,0);
	glTranslatef(55,-73,-61);
	glScalef(32.0,32.0,32.0);
	chambre->Draw();
	glPopMatrix();
}
Voici le code de mon mirroir :
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
void mirroir_chambre()
{
	glDisable(GL_LIGHT0);
	glDisable(GL_LIGHTING);
	glPushMatrix();
	glCullFace(GL_BACK);
	glEnable(GL_CULL_FACE);
	glRotatef(-90,0,1,0);
	glRotatef(-90,1,0,0);
	glTranslatef(55,-73,-61);
	glScalef(32.0,32.0,32.0);
	miroir_chambre->Draw();
	glDisable(GL_CULL_FACE);
	glPopMatrix();
	glEnable(GL_LIGHT0);
	glEnable(GL_LIGHTING);
}
Le probleme exact est lors de l'inversion des transformations pr l'effet mirroir tout se passe bien pour les rotations et la translation mais sur le scale je dois mal m'y prendre.
Voici le code de l'effet mirroir:
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
21
22
23
24
25
 
glEnable(GL_CLIP_PLANE0);
		GLdouble eqn[4];
		eqn[0] = -1.0; eqn[1] = 0.0; eqn[2] = 0.0; eqn[3] = 0.0;
		glPushMatrix();
		{
			glRotatef(spin_y, 1, 0, 0); 
			glRotatef(spin_x, 0, 1, 0); 
			glTranslatef(-t, 0, 0);  //Centr� en -t, 0, 0*/
			glRotatef(-90,0,1,0);
			glRotatef(-90,1,0,0);
			glTranslatef(55,-73,-61);
			glScalef(32.0,32.0,32.0);
			glClipPlane(GL_CLIP_PLANE0, eqn); //On place le plan de clipping
			//glScalef(-1, 1, 1);        //on applique la sym�trie
			glScalef(-32.0,32.0,32.0);
      			glTranslatef(-55,73,61);
			glRotatef(90,1,0,0);
			glRotatef(90,0,1,0);
 
 
      			//Et on peut dessiner le reflet.
      			drawChambre();
    		}
    		glPopMatrix();
J'ai essayé un peu tout avec le scalef mais bon rien ne marche. Je précise que chambre->Draw() dessine donc des objets diverses dont une sorte d'armoire sans les mirroirs sur les portes (dessinés eux par mirroir_chambre())