Polygone noir transparent

Polygone noir transparent - C++ - Programmation

Marsh Posté le 03-07-2006 à 18:25:37    

Bonjour, j'ai dans mon programme un polygone que je voudrais faire noir en légèrement transparent (un peu comme la sidebar du futur vista voir ici par exemple : http://www.clubic.com/article-3590 [...] el-os.html), cependant, quand je demande avec un color4f(0.0,0.0,0.0,0.5), j'obtiens plutot un polygone dans les blancs transparents. Idem pour toute couleur sombre.
 
Comment faire pour faire cette transparence ?
 
Merci d'avance
 
Nisalon Caje

Reply

Marsh Posté le 03-07-2006 à 18:25:37   

Reply

Marsh Posté le 03-07-2006 à 18:57:08    

si tu utilises le Glide 2, 3DFX a sorti le Glide 3 déjà.
 

Reply

Marsh Posté le 03-07-2006 à 19:20:41    

je n'utilise pas glide 2 mais j'utilise glut

Reply

Marsh Posté le 03-07-2006 à 22:12:49    

bjone a écrit :

si tu utilises le Glide 2, 3DFX a sorti le Glide 3 déjà.


[:ddr555]

nisalon_caje a écrit :

je n'utilise pas glide 2 mais j'utilise glut


Un petit peu plus de détails, un bout de code ?


Message édité par Evadream -jbd- le 03-07-2006 à 22:12:59
Reply

Marsh Posté le 03-07-2006 à 23:02:05    

haaaaaaaaa c'est donc de l'OpenGl, on progresse  ;)


Message édité par bjone le 03-07-2006 à 23:02:53
Reply

Marsh Posté le 03-07-2006 à 23:05:22    

donc a priori c'est un problème de configuration de blending.
 
pour avoir un gradient de mélange comme le truc a droite dans vista, à froid je dirais qu'il faut te mettre en ADD,SRC_ALPHA,INV_SRC_ALPHA ou un truc du genre.


Message édité par bjone le 03-07-2006 à 23:06:01
Reply

Marsh Posté le 03-07-2006 à 23:36:50    

color4f(0.0,0.0,0.0,0.5) ca aurai du mal detre du directX :sarcastic:

Reply

Marsh Posté le 04-07-2006 à 00:13:45    

ça peut surtout être n'importe quoi :D
 
et genre on a plus le droit de taquiner les gens ici ?

Reply

Marsh Posté le 04-07-2006 à 09:07:09    

y'a pas un glEnable alphablending à gérer également ?

Reply

Marsh Posté le 04-07-2006 à 10:59:42    

Après essai,

Code :
  1. glDisable( GL_LIGHTING );
  2. glBlendFunc( GL_SRC_ALPHA , GL_ONE_MINUS_SRC_ALPHA ) ;
  3. glEnable( GL_BLEND ) ;
  4. glColor4f(0.0f,0.0f,0.0f,0.35f);
  5. // je trace mes polygones ...
  6. glDisable( GL_BLEND );
  7. glEnable( GL_LIGHTING );


Reply

Marsh Posté le 04-07-2006 à 10:59:42   

Reply

Marsh Posté le 04-07-2006 à 17:34:11    

ok merci je viens d'essayer, ca marche :)

Reply

Marsh Posté le 04-07-2006 à 17:37:49    

c'était quoi alors ?

Reply

Marsh Posté le 04-07-2006 à 18:24:42    

glBlendFunc( GL_SRC_ALPHA , GL_ONE_MINUS_SRC_ALPHA ) ; qu'il fallait mettre :)  
 
cependant j'ai un autre petit problème, en fait ce polygone je le mettais au premier plan un peu comme la sidebar de vista : j'ai le code suivant :
 
 

Code :
  1. glMatrixMode(GL_PROJECTION);
  2. glLoadIdentity();
  3. gluOrtho2D(0.0, viewport[2], 0.0, viewport[3]);
  4. glMatrixMode(GL_MODELVIEW);
  5. glDisable(GL_TEXTURE_2D);
  6. glDisable(GL_LIGHTING);
  7. glDisable(GL_DEPTH_TEST);
  8. glEnable(GL_COLOR);
  9. glLoadIdentity();
  10. glEnable(GL_BLEND);
  11. glColor4f(0.0,0.0,0.0,1.0);
  12. glBegin(GL_POLYGON);
  13. glVertex2f(700,000);
  14. glVertex2f(700,600);
  15. glVertex2f(800,600);
  16. glVertex2f(800,000);
  17. glEnd();


 
puis je voudrais faire des "boutons texturés" dessus : ensuite je mets donc :  

Code :
  1. glDisable(GL_BLEND);
  2. glDisable(GL_COLOR);
  3. glEnable(GL_TEXTURE_2D);
  4. glBindTexture(GL_TEXTURE_2D,IdTex[0]);
  5.   glBegin(GL_POLYGON);
  6.   glTexCoord2f(0.0,0.0);   glVertex2f(710,200);
  7.   glTexCoord2f(0.0,1.0);   glVertex2f(710,250);
  8.   glTexCoord2f(1.0,1.0);   glVertex2f(790,250);
  9.   glTexCoord2f(1.0,0.0);   glVertex2f(790,200);
  10.   glEnd();


 
Cependant le polygone reste invisible car noir. Que faire ? Merci d'avance :)

Reply

Marsh Posté le 04-07-2006 à 20:02:17    

et en t'inspirant de nehe.gamedev.net ?

Reply

Marsh Posté le 04-07-2006 à 20:24:05    

c'est à dire ???
 
et comment faire avec [u]MA[strike] méthode ?


Message édité par nisalon_caje le 04-07-2006 à 20:25:13
Reply

Marsh Posté le 04-07-2006 à 21:46:52    

c'est à dire, oublions tout simplement que les polygones me servent à faire des boutons. Comment faire tout simplement pour qu'ils ne soient pas eux aussi noirs : c'est surtout ce problème qui m'intéressent, pas ce qu'ils sont censés faire

Reply

Marsh Posté le 05-07-2006 à 09:52:53    

en lisant les tutos du site que je t'ai envoyé, y'a ce qui t'interesse dedans

Reply

Marsh Posté le 05-07-2006 à 17:35:12    

heu ... je n'ai rien recu :(

Reply

Marsh Posté le 05-07-2006 à 17:41:46    

[:pingouino]
 

Citation :

et en t'inspirant de nehe.gamedev.net ?

Reply

Marsh Posté le 05-07-2006 à 17:44:11    

a ok je croyais que vous me les aviez envoyé par message privé :):):):):):):):)
 
Heu et bien j'ai déjà regardé les tutoriaux, ce qui m'a d'ailleurs beaucoup inspiré pour mon programme et même pour le bout de code ci-dessus, cependant, meme avec ces tutoriaux, j'ai pas trouvé le problème :(

Reply

Marsh Posté le 05-07-2006 à 17:48:45    

ton coefficient alpha sert à gérer le mélange, donc il faut que tu joues avec...

Reply

Marsh Posté le 05-07-2006 à 17:50:55    

mais si je désactive le blending, et si je fais gl_disable(gl_color), pourquoi est ce que la couleur reste activée (donc qu'au lieu de voir la texture de mon polygone on voit un polygone noir) ?

Reply

Marsh Posté le 05-07-2006 à 17:56:25    

le glcolor() fixe la couleur de ton matériau.
 
après faut voir ce que tu fais exactement, mais si tu fixes un matériau noir avec une texture, la couleur resultante = noir * texture => noir

Reply

Marsh Posté le 05-07-2006 à 17:57:35    

mais oui, mais pourquoi est ce que si je fais gl_disable(gl_color) (donc que je désactive la couleur des matériaux) le noir reste ?

Reply

Marsh Posté le 05-07-2006 à 18:35:06    

et t'as bindé une texture ?

Reply

Marsh Posté le 05-07-2006 à 18:53:22    

oué

Reply

Marsh Posté le 05-07-2006 à 19:01:34    

ce serait pas une histoire de lumière activée avec ton polygone en dehors du champ d'éclairage?

Reply

Marsh Posté le 05-07-2006 à 19:04:58    

ben je pense pas parce que j'ai fait un glDisable(GL_LIGHTING);

Reply

Marsh Posté le 05-07-2006 à 20:00:41    

c'est bien glDisable(GL_COLOR_MATERIAL) que tu fais ?

Reply

Marsh Posté le 05-07-2006 à 20:02:36    

et si tu mets ton matériau à (1,1,1,1)

Reply

Marsh Posté le 05-07-2006 à 22:01:53    

non c'était glDisable(GL_COLOR); que je faisais. Si je mets mon matériau à 1,1,1,1 ca s'affiche correctement.
 
Mais quelle est la différence entre GL_COLOR et GL_COLOR_MATERIAL (désolé mais j'ai pas le temps de tester ce soir, ce sera pour demain soir) ?


Message édité par nisalon_caje le 05-07-2006 à 22:02:49
Reply

Marsh Posté le 05-07-2006 à 23:40:42    

GL_COLOR n'est pas un paramètre valable pour glEnable/Disable.
 
http://www.rush3d.com/reference/op [...] #id5468083

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed