IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Comment mettre une texture sur un cube à partir d'un fichier


Sujet :

OpenGL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 109
    Points : 30
    Points
    30
    Par défaut Comment mettre une texture sur un cube à partir d'un fichier
    Bonjour,

    Je suis en train de créer un moteur 3D, en fait c'est une pièce définie par des murs et dans laquelle il y a des objets. Et en fait j'aimerais appliquer de la texture sur un cube à partir d'une image jpeg (ou autre si ça ne marche pas). Quelqu'un saurait-il comment on fait?

    Voici le code de mon cube :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    glBegin(GL_POLYGON);/*En mode GL_POLYGON, chaque sommet est relié à son prédecesseur, 
         et pour fermer le polygone, le dernier point est relié au premier*/
     
         //Spécification de la première face du cube
      glNormal3f(0.0,0.0,1.0);//Coordonnées du vecteur normal de la face
         glVertex3f(-0.5*a, 0.5*a, 0.5*a);//Coordonnées d'un sommet de la face, avec un coefficient d'agrandissement a
         glVertex3f(-0.5*a,-0.5*a, 0.5*a);
         glVertex3f( 0.5*a,-0.5*a, 0.5*a);
         glVertex3f( 0.5*a, 0.5*a, 0.5*a);
      glEnd();//Fin de la spécification de la première face
     
      //Spécification de la deuxième face
      glBegin(GL_POLYGON); 
      glNormal3f(1.0,0.0,0.0);
         glVertex3f( 0.5*a, 0.5*a, 0.5*a);
         glVertex3f( 0.5*a,-0.5*a, 0.5*a);
         glVertex3f( 0.5*a,-0.5*a,-0.5*a);
         glVertex3f( 0.5*a, 0.5*a,-0.5*a);
      glEnd();
     
      //Spécification de la troisième face
      glBegin(GL_POLYGON);
      glNormal3f(0.0,0.0,-1.0);
         glVertex3f( 0.5*a, 0.5*a,-0.5*a);
         glVertex3f( 0.5*a,-0.5*a,-0.5*a);
         glVertex3f(-0.5*a,-0.5*a,-0.5*a);
         glVertex3f(-0.5*a, 0.5*a,-0.5*a);
      glEnd();
     
      //Spécification de la quatrième face
      glBegin(GL_POLYGON);
      glNormal3f(-1.0,0.0,0.0);
         glVertex3f(-0.5*a, 0.5*a,-0.5*a);
         glVertex3f(-0.5*a,-0.5*a,-0.5*a);
         glVertex3f(-0.5*a,-0.5*a, 0.5*a);
         glVertex3f(-0.5*a, 0.5*a, 0.5*a);
      glEnd();
     
      //Spécification de la cinquième face
      glBegin(GL_POLYGON);
      glNormal3f(0.0,1.0,0.0);
         glVertex3f(-0.5*a, 0.5*a,-0.5*a);
         glVertex3f(-0.5*a, 0.5*a, 0.5*a);
         glVertex3f( 0.5*a, 0.5*a, 0.5*a);
         glVertex3f( 0.5*a, 0.5*a,-0.5*a);
      glEnd();
     
      //Spécification de la sixième face
      glBegin(GL_POLYGON);
      glNormal3f(0.0,-1.0,0.0);
         glVertex3f(-0.5*a,-0.5*a,-0.5*a);
         glVertex3f(-0.5*a,-0.5*a, 0.5*a);
         glVertex3f( 0.5*a,-0.5*a, 0.5*a);
         glVertex3f( 0.5*a,-0.5*a,-0.5*a);
      glEnd();
    	 }
    Merci!!


    [Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]

  2. #2
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Il y a un bon tutoriel sur le site de nehe... Le principe du chargement de textures se fait en plusieurs etapes:

    - Charger la texture en mémoire (le format bmp/tga (non compressé) étant les plus faciles à charger)
    - Recuperer un indice de texture non utilisé (glGenTextures)
    - Charger la texture dans le moteur OpenGL (glTexImage2D)
    - Utiliser la fonction glBindTexture pour dire à OpenGL qu'on veut utiliser cette texture...

    Voici le lien du tutoriel en anglais:

    http://nehe.gamedev.net/data/lessons....asp?lesson=06

    Sinon texture + opengl + tutoriel avec devrait te servir,
    Jc

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 109
    Points : 30
    Points
    30
    Par défaut
    J'ai donc jetté un coup d'oeil sur le site et c'est assez compliqué...
    Quelqu'un n'aurait pas une solution plus simple à mettre en place et qui marche bien?

  4. #4
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut

    c'est difficile de charger une texture en openGL ?
    a mon avis il va falloire reprendre la base la... c'est une des operation de base de toute API 3D...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  5. #5
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par brotelle
    J'ai donc jetté un coup d'oeil sur le site et c'est assez compliqué...
    Quelqu'un n'aurait pas une solution plus simple à mettre en place et qui marche bien?
    Si tu travailles (ou peut) en SDL, tu peux voir la FAQ SDL, il y a une explication sur comment charger une texture pour OpenGL qui est relativement simple. Remarque que la seule chose que SDL simplifie est la première étape: charger l'image en mémoire. Tout le reste est spécifique à OpenGL...

    Voici le lien: http://jeux.developpez.com/faq/sdl/?...PENGL_textures

    Jc

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/09/2006, 10h31
  2. Réponses: 1
    Dernier message: 05/05/2006, 14h29
  3. [FPDF] Comment mettre une annotation sur un Pdf déjà existant en PHP
    Par shequet dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/09/2005, 11h23
  4. [JBouton] Comment mettre une image sur un bouton ?
    Par Kyti dans le forum Composants
    Réponses: 6
    Dernier message: 11/03/2005, 16h08
  5. [Info]Comment mettre une servlet sur le web?
    Par fred9510 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/08/2004, 16h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo