cs_mat74
Messages postés241Date d'inscriptiondimanche 10 août 2003StatutMembreDernière intervention16 juin 2010
-
10 sept. 2004 à 17:49
soadv1
Messages postés1Date d'inscriptionlundi 18 octobre 2004StatutMembreDernière intervention15 février 2006
-
15 févr. 2006 à 15:33
salut a ts
je suis en train de creer une sorte de mini golf en opengl et j'aimerai afficher des info au 1er plan comme la puissance de tir .
il faudrai que les info que j'affiche au 1er plan ne soit pas modifier par ce qui se passe derriere . ce que je voudrai afficher est une jauge de puissance donc la fonction ecriture ne sufira pas . en + ds la scene je fait tourner la camera donc il faudrai que sa n'est pas d'influence n'ont + .
voila si qq1 connai une fonction pr afficher ce genre de truc ....
merci d'avance
@+
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 10 sept. 2004 à 19:03
Pour faire de l'affichage en 2D comme ça je te conseillerais de faire comme ça :
// D'abord tu dessines la scène en 3D
// Ici tu affiches en 2D.
glDisable(GL_DEPTH_TEST); // D'abord tu désactives le depth test
// Ensuite tu pushes la matrice de projection et tu passes à une projection 2D
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluOrtho2D(0, 640, 0, 480);
// Puis du pushes la matrice Modelview et tu charges la matrice d'identité
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
// ICI TU DESSINES EN 2D
// Tu restaures la matrice modelview initiale
glPopMatrix();
// Tu restaures la matrice de projection initiale
glMatrixMode(GL_PROJECTION);
glPopMatrix();
Voilà, si t'es pas très calé en matrices dis-moi ce que tu comprends pas.
---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 11 sept. 2004 à 17:06
Tout transparent??
Je vois pas du tout...et c'est pas dit que ça vienne de mon code, c'est peut-être la façon dont tu l'as utilisé, enfin je sais pas...
Là ça te donne les bases histoire de savoir ce que c'est.
Donc, une matrice c'est un tableau de 4x4 nombres à virgules. Elles sont entretenues par OpenGL.
Quand tu fais glMatrixMode(), tu définis quelle est la matrice en cours (modelview, projection ou texture).
Au moment du rendering, chaque vertex (sous la forme d'une matrice (x, y, z, w) ) que tu indiques est multiplié par la matrice modelview.
Ça te donne un nouveau vertex (x1, y1, z1, w1), qui sera la position "finale" de ton vertex, lorsque l'on se repère par rapport au repère d'origine d'OpenGL.
Quand tu fais un glScalef, glTranslatef ou glRotatef, tu multiplies la matrice modelview en cours par une matrice construite par la fonction de transformation. Ce peut être une matrice de translation, de rotation ou de redimensionnement.
En ce qui concerne la matrice de projection, tous les fragments (c'est à dire des sortes de pixels en 3D je crois, mais je n'en suis pas sûr du tout...) sont multipliés par cette matrice pour donner des coordonnées en 3D. Ça par contre je n'en suis pas très sûr, je suis pas vraiment calé là-dessus :(
Pour la matrice de texture, en fait elle te permet de faire des opérations sur les textures. Les points précisés par glTexCoord*() sont multipliés par cette matrice.
Ça te permet par exemple de faire tourner une texture sur un carré qui reste immobile...etc. Tu utilises glRotatef et consorts ^^
Ensuite vient l'histoire de la pile de matrices, mais bon je pense que tu sais à quoi ça correspond ?
---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
Vous n’avez pas trouvé la réponse que vous recherchez ?