Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
739 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [Débutant][OpenGL ES] Problème affichage textures

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Débutant][OpenGL ES] Problème affichage textures

n°1893125
Niicoo
Posté le 09-06-2009 à 12:00:43  profilanswer
 

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'y arrive sans difficulté.
 
Mon problème est que sur cette texture, je dois en afficher d'autres..
(Enchainer des textures "route" et "croisement" pour faire un chemin sur une texture "herbe" ).
 
Pour mettre la 1er texture j'utilise la code suivant:
 

Code :
  1. - (void) chargerTextures {
  2. CGImageRef textureImage = [UIImage imageNamed:@"herbe64.jpg"].CGImage;
  3. if (textureImage == nil) {
  4.  NSLog(@"L'image n'a pas été chargé" );
  5.  return;
  6. }
  7. NSInteger textureWidth = CGImageGetWidth(textureImage);
  8. NSInteger textureHeight = CGImageGetHeight(textureImage);
  9. // Un peu d'allocation dynamique de mémoire...
  10. GLubyte *textureData = (GLubyte *) malloc(textureWidth * textureHeight *4); // 4 car RVBA
  11. CGContextRef textureContext = CGBitmapContextCreate(textureData,
  12.              textureWidth,
  13.              textureHeight,
  14.              8, textureWidth * 4,
  15.              CGImageGetColorSpace(textureImage),
  16.              kCGImageAlphaPremultipliedLast);
  17. CGContextDrawImage(textureContext,
  18.        CGRectMake(0.0, 0.0, (float)textureWidth, (float)textureHeight),
  19.        textureImage);
  20. CGContextRelease(textureContext);
  21. glGenTextures(3, &textures[0]); // 3, Car il y a 3 textures différentes...
  22. glBindTexture(GL_TEXTURE_2D, textures [0]);
  23. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, textureWidth, textureHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureData);
  24. free(textureData);
  25. glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  26. glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  27. glEnable(GL_TEXTURE_2D);


 
Et je définis les carrés comme ceci:
 

Code :
  1. - (void)drawView {
  2. .....
  3. // Dessin du carré
  4. glLoadIdentity();
  5. glColor4f(1.0, 1.0, 1.0, 1.0);
  6. glTranslatef(0.0, 0.0, -2.0);
  7.     glVertexPointer(3, GL_FLOAT, 0, squareVertices);
  8.     glEnableClientState(GL_VERTEX_ARRAY);
  9. glTexCoordPointer(2, GL_SHORT, 0, squareTextureCoords);
  10. glEnableClientState(GL_TEXTURE_COORD_ARRAY);
  11.     glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
  12. ....
  13. }


 
Je pensais utiliser la méthode chargerTextures lorsque je définis mon carré.
Mais je ne sais pas comment mettre en paramètre la texture nécessaire lors de l'appel et surtout quoi mettre dans la fonction chargerTextures pour que celle ci soit utilisable partout.
 
 
Je n'ai que 2semaines d'OpenGL ES dans les pieds, et plus que 3semaines de stage. Bien que je lis pas mal de tutos, cours,.. j'ai encore un peu de mal avec certaines notions =/
 
Merci!

mood
Publicité
Posté le 09-06-2009 à 12:00:43  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [Débutant][OpenGL ES] Problème affichage textures

 

Sujets relatifs
Problème fonction mailExcel 2003, problème avec une boucle
probleme livre d'orProblème sur ComboBox
Problème d'envoi de formulaire malgré une erreur js[PHP] Problème d'enregistrement en base
probleme d'organisation d'un tableau php (array)Probleme d'appel de fonction php via onclick
affichage de l'heure sur une pageProblème avec Split VBA ACCESS
Plus de sujets relatifs à : [Débutant][OpenGL ES] Problème affichage textures


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR