Bonjour, je réalise un petit projet en opengl et avec devil, qui a pour une partie le but d’afficher une carte (de France par exemple), et j’aimerais lorsque l’on click sur un point de la carte que le groupe de pixels, se trouvant au niveau du point, change de couleurs, afin de le visualiser.
La carte est appliquée à l’aide d’une texture.
Et c’est là que j’ai besoin de votre aide, pour modifier la texture.
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 /// pour dire sur quelle image on travaille ilBindImage(ImgId2); ILubyte *data; data=(ILubyte *)malloc(640*472*3*sizeof(ILubyte)); ///////Récupérer les données de image ilCopyPixels(0, 0, 0, 640, 472, 1, IL_RGB, IL_UNSIGNED_BYTE, data); for (long i=0;i<6;i++) {//printf("%i\n",data[i]); controle du changement data[i]=0;} ///Spécifier les données d'une image ilSetPixels(0,0,0,640,472,1,IL_RGB,IL_UNSIGNED_BYTE,data); // ilTexImage(640, 472, 0, 3, IL_RGB,IL_UNSIGNED_BYTE,data); //Génère et lie une texture à partir de l'image courante et renvoie un nom de texture utilisable par OpenGL. TexID2 = ilutGLBindTexImage();
je lit les données de l'image que je met dans data
je modifie data
je specifie les nouvelles donnée
je genere la texture
et rien ne se passe, ou meme lorsque je fait parcourir la boucle for afin de modifier toute l'image, là elle devient partiellement noire.
je n'arrive pas à voir si j'ai oublié quelque chose , ou tout simplement si le code ne va pas.
je vous remercie d'avance de m'aider si vous avez une idée
Partager