Bonjour,
J'utilise opengl en c++.
Alors voila, J'ai une map simple, en 3D Ortho pour pouvoir afficher des personnages en sprite dessus.
j'aimerai les affichers sur la map, et que quand elle tourne, eux aussi tourne.
Je veux donc faire un billboard, afin que la face ou j'affiche ma sprite reste enface de la camera.
Mon souci, c'est qu'avec le code que j'ai trouvé, je n'arrive pas a le faire.
La face reste toujours enface de la camera, par contre, celui ci ne bouge pas du tout lorsque je fais tournée ma map.
Voici mon bout de code :
Quelqu'un sait il comment je peux faire ?
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
26
27
28
29
30
31
32
33 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0,10,4,0,0,0,0,0,1); glRotated(Camera::angle_cam(),0,0,1); glEnableClientState(GL_VERTEX_ARRAY); map.dessiner_modeles_3D(); // affichage des objet 3D texturer // Récupérer la matrice modelview. GLfloat modelview[16]; glGetFloatv(GL_MODELVIEW_MATRIX, modelview); // Sauvegarder la matrice actuelle. glPushMatrix(); // Modification de la matrice pour le billboarding. for (unsigned int i = 0; i < 3; i++) for (unsigned int j = 0; j < 3; j++) modelview[i+4*j] = (i==j) ? 1.f : 0.f; // Définir la matrice. glLoadMatrixf(modelview); map.dessiner_modeles_2D(); // affichage de des objet 2D de la map glPopMatrix(); // chargement de l'ancienne matrice glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY);
Connaissez vous de bon tutoriaux pour la gestion de jeux en 3D sans profondeur ?
Car j'ai rien trouvé pour m'aider pour le moment.
Merci d'avance.
Partager