begin process at 2012 05 28 17:57:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

Detection clic "sprite" 2D image TGA avec transparence


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

Detection clic "sprite" 2D image TGA avec transparence

mardi 2 mars 2004 à 16:12:18 | Detection clic "sprite" 2D image TGA avec transparence

kawito


Bonjour,


j'aimerais savoir quel est la methode pour detecter un clic dans un sprite, un polygone texturé avec une image TGA qui comporte des parties transparentes.

j'arrive parfaitement a detecter un clic dans un polygone, avec la methode de picking.
exemple :
je fais des boutons (polygone rectangle + texture), la texture est chargée depuis une image au format TGA, cette image comporte de partie transparente.
comment detecter si le clic a eut lieu dans une partie du sprite ?

j'ai eut l'idee suivante :
je detecte si le clic a eut lieu dans le polygone avec la methode picking.
je connais donc le polygone qui a ete touché,

je vide le tampon GL_AUX0 avec du blanc par exemple.
je trace ce polygone texturé dans le tampon GL_AUX0
et je fais un glReadPixels(x, y, 1, 1,GL_RGBA, GL_UNSIGNED_BYTE, pixel);
x et y etant les coordonnées de la souris au moment du clic

puis si le pixel lu est a blanc, (de la couleur de vidange du tampon) c'est que le clic n'a pas eut lieu dans le "sprite"
sinon le clic a eut lieu dans le sprite.

je choisirais une couleur de vidange particuliere, car si le blanc est utilisé dans le sprite...

mais voila ça ne marche pas !
j'ai l'impression de ne pas lire le bon buffer !

je travaille en bouble buffer.
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);

CODE:

/* je sauvegarde les buffers courant */
glGetIntegerv(GL_DRAW_BUFFER, drawBuffer);
glGetIntegerv(GL_READ_BUFFER, readBuffer);

/* je dessine dans le buffer auxiliere*/
glDrawBuffer(GL_AUX0);
/* couleur de vidange */
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
/* vider le tampon */
glClear(GL_AUX0);
/* afficher le polygone texturé */
lb[numEl].afficherElementGraphique();
/* je lit dans le buffer auxiliere */
glReadBuffer(GL_AUX0);
/* lire la couleur du pixel au coordonnée x,y */
glReadPixels(x, y, 1, 1,GL_RGB, GL_UNSIGNED_BYTE, pixel);
/* je restore les buffer courant
glDrawBuffer(*drawBuffer);
glReadBuffer(*readBuffer);
if (pixel[0] == 255 && pixel[1] == 255 && pixel[2] == 255)
{
"non - touché"
}
else
{
"touché !"
}


j'ai l'impression de ne pas lire le tampon GL_AUX0 ?
le pricipe est 'il bon ?
kawito



Cette discussion est classée dans : clic, pixel, sprite, gl, polygone


Répondre à ce message

Sujets en rapport avec ce message

Sprite avec open gl [ par goutbouyo ] Salut,Y a t-il une méthode particulière pour afficher des sprites avec open gl ???Car sur les tutos open gl ils ne parlent jamais de sprite .Merci d'a Polygone au premier plan avec texte [ par 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 (co récupération de la couleur d'un pixel [ par njo80 ] Bonjour,Je suis en train de créer un petit jeu style zelda (en light), j'ai affiché ma carte ainsi que mon sprite qui bouge.Pour gérer la collision j' Couleur d'un Pixel et dessin [ par wxccxw ] Bonjour,je suis en train de faire un colorimètre numérique, et lorsque que je recupere la couleur des pixels a la place de mon pointeur j'obtien toujo Sprite Transparent OpenGL [ par shorzy ] Salut à Tous Je voudrais Dessiner un Sprite (Texturer Donc) La Texture est entierement Noir sauf une Forme en Blanc. Je veux que seule la Forme reso Détecteur de pixel, déplacement de souris, clic [ par ludesert ] Bonjour, je suis ARCHI NUL en programmation mais je voudrais me lancer dans un petit truc ... Donc voilà : Je voudrais programmer un programme (logiq openGL3.3: probleme de texture [ par jngl ] bonjour, je suis entrain de développez un application C++ avec openGL3.3, SFML2(pour la fenêtrage) et openCTM pour charger les model3D. je n'arrive pikcing opengl [ par znb ] J 'ai fait un code et ça marche très bien; il détecte les couleurs des objets. Mais je veux que, pour une valeur particulière de la couleur, dessiner probleme recuperation pixel [ par mano972 ] Bon j'ai écrit un programme pour me permettre de récuperer et modifier des pixels d'une image mais j'aimerais savoir par quoi on peut remplacer fgetc erreur de segmentation (segfault) sur un return int [ par tiouil ] Bonjour, decidemment j'aime bien ce forum ^^ et par la meme occasion les erreurs de segmentation car en ce moment c'est mon fort (Patato ou cptPingu .


Nos sponsors


Sondage...

Comparez les prix

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 : 3,245 sec (3)

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