begin process at 2012 05 29 13:55:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

OpenGL

 > 

Polygone au premier plan avec texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Polygone au premier plan avec texte

mercredi 28 juin 2006 à 18:50:04 | Polygone au premier plan avec texte

nisaloncaje

Bonjoru, je suis débutant en OpenGL et j'ai une scène en 3d en perspective. J'aimerais maintenant créer un polygone en 2d qui soit au premier plan (comme dans les fps par exemple où on voit un symbole indiquant la vie, et du texte affichant le nombre de munitions restantes), ainsi que du texte. Pour le texte j'ai "partiellement" réussi en faisant ceci :

une fonction :
void txt2d(float x,float y,float z,void *font,char *string) {
  glDisable (GL_TEXTURE_2D);
  glDisable(GL_DEPTH_TEST);

  glDisable(GL_LIGHTING);
  glEnable ( GL_COLOR );
  glColor3f ( 1.0f, 1.0f, 1.0f );
  glRasterPos2f(x,y);
    while(*string)
    {
        glutBitmapCharacter(font, *string);
        string++;
        cout<<*string<<endl;
    }

  glDisable ( GL_COLOR );
  glEnable ( GL_TEXTURE_2D );
  glEnable(GL_LIGHTING);
  glEnable(GL_DEPTH_TEST);
}

et dans la fonction d'affichage 
txt2d(1.0f,1.0f,1.0f,GLUT_BITMAP_TIMES_ROMAN_24,"Hello");

Cependant, j'ai mis ces coordonnées un peu au hasard mais j'aimerais en fait pouvoir choisir les coordonnées du pixel à l'écran donc les coordonnées 2d, plutôt que celles ci qui correspondent, je pense (vu que quand je bouge la caméra, le texte se déplace) aux coordonnées dans la 3d.

Comment faire pour le polygone et le texte ?

Merci d'avance !

mercredi 28 juin 2006 à 22:27:39 | Re : Polygone au premier plan avec texte

luhtor

Ben dans ta fonction, faut que tu appelles les fonctions pour changer la perspective et passer en 2D.



jeudi 29 juin 2006 à 09:47:08 | Re : Polygone au premier plan avec texte

Jeanlaffreu

je connais pas trop pour OpenGL, mais je crois que pour faire un "tableau de bord" avec des infos à l'écran, il vaut mieux utiliser un plan stencil. Les pixels de ta vue 3D seront testés pour être sûr que ta vue 3D ne se dessine pas par dessus ton tableau de bord. Aprés pour les détails...
a+ 
jeudi 29 juin 2006 à 10:21:23 | Re : Polygone au premier plan avec texte

luhtor

Nonon Jeanlaffreau, apres voir afficher ta scène 3D. Tu peux par exemple désactiver le Zbuffer et tracer le tableau de bord en perspective 2D.

Sinon nisaloncaje, voici un exemple dans lequel j'affichais un texte fixe sur l'écran:
La fonction d'afficachage 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
   
    Draw_scene();
   
    Draw_2D(); // <= Affichage du texte

    glutSwapBuffers();
    glFlush();   

Et voici la fonction  Draw_2D:
    glLoadIdentity();
    glDisable(GL_DEPTH_TEST);
    glMatrixMode(GL_PROJECTION);
    glPushMatrix();
   
    glLoadIdentity();
    gluOrtho2D(0.0, viewport[2], 0.0, viewport[3]); // On initialise la projection de façon a ce que les coordonnées correspondent au pixel
    glColor3f(1.0f, 1.0f, 1.0f);
   
    glRasterPos2f(10.0f, viewport[3] - 20.0f); // <= en haut a gauche par rapport au bord de la fenetre
    drawString("INSER - Prendre une photo");
    glRasterPos2f(10.0f, viewport[3] - 40.0f); // Pareil
    drawString("HOME - Filmer");

    glPopMatrix();
    glEnable(GL_DEPTH_TEST);

Avec viewport qui est un tableau de 4 entier contenant notamment les dimensions de la fenetre d'affichage:
GLint viewport[4];
glGetIntegerv( GL_VIEWPORT, viewport );
jeudi 29 juin 2006 à 10:54:31 | Re : Polygone au premier plan avec texte

nisaloncaje

ok merci, mais la fonction drawstring est une fonction d'opengl ou une fonction que vous déclarez et définissez vous meme ?

Sinon j'ai pas bien compris comme tracer la scène en perspective 2d : la simple désactivation du z buffer le permet ? et si oui, comment définir les coordonnées du polygone , sont ce les coordonnées des pixels ou je veux que soit le polygones  ? Quelles coordonnées ? Voila encore une fois merci d'avance :)
jeudi 29 juin 2006 à 13:10:16 | Re : Polygone au premier plan avec texte

luhtor

Mise en 2D:
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0.0, viewport[2], 0.0, viewport[3]); // On initialise la projection de façon a ce que les coordonnées correspondent

Si tu piges pas ca, je peux pas lire les tutoriaux opengl a ta place.

Fonction DRAWSTRING:
void drawString (char *s)
{
  unsigned int i;
  for (i = 0; i < strlen (s); i++)
    glutBitmapCharacter (GLUT_BITMAP_HELVETICA_18, s[i]);
};
jeudi 29 juin 2006 à 13:11:31 | Re : Polygone au premier plan avec texte

luhtor

Mais j'ai pas précisé que ta méthode ou celle que je te présente la (c'est la meme en gros) pour afficher du texte, c'est de la mrd totale. Utilise ca seulement si les performances sont la dernière de tes préoccupations.


jeudi 29 juin 2006 à 15:00:26 | Re : Polygone au premier plan avec texte

nisaloncaje

et si les performances ne sont pas les dernieres de mes préoccupations, je fais comment ?
jeudi 29 juin 2006 à 21:14:19 | Re : Polygone au premier plan avec texte

nisaloncaje

et aussi, dites moi s'il est possible que le polygone au premier plan soit légèrement transparent afin que l'on puisse voir la scène derrière (j'ai bien essayé glColor4f(0.2,0.2,0.2,0.5); mais cela n'a pas marché):(


Cette discussion est classée dans : texte, gl, 2d, polygone, 0f


Répondre à ce message

Sujets en rapport avec ce message

ecrire du texte 2d sur anim 3d [ par jojomillenium ] Bonjour, J'ai une fenetre OpenGL sur laquel se dessine des briques en 3D. La souris permet de tourner autour, zoomer, translater... bref les fonctions problème de transparence sur texture opengl [ par Batman60 ] bonsoirla transparence sur la texture tga ne s'affiche pas, pourtant j'utilise le code ci-dessous et je ne vois pas quoi d'autre à ajouter ou modifier PB POUR LA GESTION MULTIFENETRES [ par algeros ] Voici un code ://////////////////////////////////////////////////////////////////                                                          //   Name: Probleme d'alpha avec SDL_ttf [ par vladisback ] Je suis entrain de m'arracher les cheuveux avec SDL_ttf, j'essai simplement d'afficher du texte de n'importe quelle couleur opaque sur un fond transpa bitmap avec SDL_image? [ par Batman60 ] Bonjour Comment afficher des bitmaps correctement(bonnes couleurs,et image non inversée) avec ce code (SDL_ima Problème d'affichage de texture [ par Turok ] Bonjour,Alors voila le problème est simple, voici un code que j'utilise pour afficher une simple image 2d en utilisant OpenGl et SDL, mais celui ci ne Problème avec la caméra [ par Turok ] Bonjour, Dans mon programme, je souhaite zoomer ou deplacer la camera suivant si je déplace un slider pour le zoom ou si j'appui sur le bouton déplace Texture transparente [ par F0ra ] Bonjour,Je voudrais aff [OpenGL] rotation [ par F0ra ] Bonjour,J'ai un problème pour réaliser une rotation en OpenGL au centre du rectangle.J'ai esayé avec glRotatef(ang,0.0,0.0,1.0);  le problème l'origni [Débutant][OpenGL ES] Problème affichage textures [ par Niicoo ] Bonjour tout le monde,Je dois faire un jeu en OpenGL ES (Objective-c) pour IPhone.Je dois afficher une texture sur un carré (2D). Ça pas de soucis, j'


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales