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

  FORUM HardWare.fr
  Programmation
  C

  opengl: intersection de segment en mode blend.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

opengl: intersection de segment en mode blend.

n°1675754
nicolas_uk
Posté le 23-01-2008 à 16:17:49  profilanswer
 

Bonjour,
 
Avec opengl, je dessine une serie de segment en mode transparent, et aux intersections, les transparences s'additionnent comme vous pouvez le voir sur le screenshot.
 
http://img171.imageshack.us/img171/2416/blendprobmx8.png
 
 
Existe-t-il un mode a activer pour eviter cela?
Merci.
 
Le code:

Code :
  1. glEnable(GL_BLEND);
  2. glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  3. glColor4ub(255,0,0,255);
  4. glBegin(GL_QUADS);
  5.  glVertex3f(-1.0f, 2.0f, 0.0f);
  6.  glVertex3f( 2.0f, 2.0f, 0.0f);
  7.  glVertex3f( 2.0f,-1.0f, 0.0f);
  8.  glVertex3f(-1.0f,-1.0f, 0.0f);
  9. glEnd();
  10. glEnable(GL_LINE_SMOOTH);
  11. glLineWidth(10);
  12. glColor4ub(143,196,255,100);
  13. glBegin(GL_LINE_STRIP);
  14.  glVertex3f(-1.0f, 1.0f, 0.0f);
  15.  glVertex3f( 1.0f, 1.0f, 0.0f);
  16.  glVertex3f( 2.0f,-1.0f, 0.0f);
  17.  glVertex3f(-1.0f,-2.0f, 0.0f);
  18. glEnd();
  19. glPointSize(10);
  20. glEnable(GL_POINT_SMOOTH);
  21. glBegin(GL_POINTS);
  22.  glVertex3f( 1.0f, 1.0f, 0.0f);
  23. glEnd();


Message édité par nicolas_uk le 23-01-2008 à 16:18:21
mood
Publicité
Posté le 23-01-2008 à 16:17:49  profilanswer
 

n°1676053
bjone
Insert booze to continue
Posté le 24-01-2008 à 10:13:07  profilanswer
 

le mieux c'est de générer toi même la chose en gérant la connexion en faisant un truc style:  
= /
   ||
 
Donc avoir un générateur de géométrie propre et de ne plus utiliser la primitive de ligne et sa propriété de taille.
 
sinon avec le stencil il doit y avoir d'éviter l'overdraw, mais bon si il clearer le stencil entre chaque paquet de lignes...

n°1676601
nicolas_uk
Posté le 25-01-2008 à 09:37:31  profilanswer
 

bjone a écrit :

le mieux c'est de générer toi même la chose en gérant la connexion en faisant un truc style:  
= /
   ||
 
Donc avoir un générateur de géométrie propre et de ne plus utiliser la primitive de ligne et sa propriété de taille.
 
sinon avec le stencil il doit y avoir d'éviter l'overdraw, mais bon si il clearer le stencil entre chaque paquet de lignes...


 
Ok merci.
Je vais voir ce que je peux faire, a mon avis, je vais voir egalement a utiliser une autre technique d'antialiasing.
 
Tu penses qu'en terme de performance, je gagnerai vraiment a creer mon propre generateur de geometrie ?

n°1676697
bjone
Insert booze to continue
Posté le 25-01-2008 à 12:12:50  profilanswer
 

au niveau perfs, entre une préparation déportée vers le driver, et une implémentation basée sur les VBO + indexbuffer, généralement oui c'est plus rapide.
 
d'autant plus que comme tu vois, très rapidement tu tapes dans des limites de fonctionnalitées :/

n°1676741
nicolas_uk
Posté le 25-01-2008 à 13:17:35  profilanswer
 

merci bcp pour toutes ces informations.
 
Je vais me documenter sur tout ça :)


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

  opengl: intersection de segment en mode blend.

 

Sujets relatifs
codage en mode terminal[OpenGL] Afficher un champ de vecteurs dynamique
DB2 et Materliased Query Table et rollback segment[EXCEL/VBA] Intersection avec une courbe lissée [RESOLU]
[Delphi] mode d'execution avec visu des variablesZone d'édition de texte / Mode colones
Profondeur en openglTextures et normales en opengl
Gerer plusieurs fenêtres OpenGL.Mode plein écran sous vista
Plus de sujets relatifs à : opengl: intersection de segment en mode blend.


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