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

  FORUM HardWare.fr
  Programmation
  C++

  openGL : sorting polygon

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

openGL : sorting polygon

n°878012
methos6900​6
Posté le 20-10-2004 à 15:01:35  profilanswer
 

bonjour,
 
Dans un post sur le blending, on me dit que pour gérer le blending un peu compliqué ( on voit a travers plusieurs objets, ceux ci se passent devant ou derriere...)il faut trier afficher les poly opaques puis les transparent back to front.  
Afficher les opaques avant ( dans le code )ca va, mais comment trier les polygon transparent ?  :heink:  
Ainsi Je voulais connaitre les différentes manières de trier les polygons autre que le BSP qui me semble inutil car ma scene ne comporte pas des multitudes de polygons (ce n'est pas une scene ou l'on se ballade a perpete)
Est ce encore et toujours uniquement une histoire de Z-buffer   :kaola:  
 
 

mood
Publicité
Posté le 20-10-2004 à 15:01:35  profilanswer
 

n°878039
cris56
Posté le 20-10-2004 à 15:24:37  profilanswer
 

essay aussi glAlphaFunc( GL_GREATER, 0.5 ); pour eviter les problemes de superposition
 
Passes if the incoming alpha value is greater than the reference value.

n°878045
methos6900​6
Posté le 20-10-2004 à 15:31:51  profilanswer
 

ca ne semble pas fonctionne
Je precise que tout se passe bien SAUF que certaines faces des cubes transparents ne sont pas tout le temps transparentes. En effet quand on voit a travers 2 faces opposées du cube mais 2 faces connexes ne sont pas transparentes ( si c clair...)
ceci du au fait que dans le code on est bien obligé de creer une face avant une autre...et selon notre position et l'ordre de creation certaines sont transparentes ( entres elles) et pas d'autres...
 
Donc je crois qu'il faut faire du tri.
mais comment, that is my question

n°878111
cris56
Posté le 20-10-2004 à 15:59:39  profilanswer
 

oui je comprends ton probleme, moi ca me parais lour d'avoir a trier un tableau de polygone, à chaque rendu finalement ?
 
ce probleme n'est sans doute pas benin, gta vc est plein de ce genre de defaut de transparence (surtout avec les arbres, ou des fois on voit pas les bonhommes derrieres une grille)

n°878397
LeGreg
Posté le 20-10-2004 à 19:55:32  profilanswer
 

methos69006 a écrit :


Afficher les opaques avant ( dans le code )ca va, mais comment trier les polygon transparent ?  :heink:  
Ainsi Je voulais connaitre les différentes manières de trier les polygons autre que le BSP qui me semble inutil car ma scene ne comporte pas des multitudes de polygons (ce n'est pas une scene ou l'on se ballade a perpete)
Est ce encore et toujours uniquement une histoire de Z-buffer   :kaola:


 
Tu n'es pas obligé de trier par polygone. Essaie d'abord un tri par objet et si le résultat ne te plait pas il faudra passer à autre chose ou changer ton contenu.
 
Beaucoup de jeux se contentent d'avoir des artefacts (GTA), ou d'éliminer le problème en limitant la transparence à quelques objets.
 
Ce qu'on voit habituellement:  
- nombre de surfaces transparentes très limitées, par exemple à de l'eau ou quelques vitres. Par ailleurs certains de ces cas, gèrent la transparence en faisant un rendu dans une texture préalable du background et en utilisant cette texture pour texturer l'objet transparent (ça nécessite de trier uniquement par rapport à l'objet transparent).
- effets spéciaux indépendants de l'ordre de rendu. Ça peut être un systeme de particules de fumées quasi monochrome (dans ce cas c'est l'accumulation qui compte, les artefacts liés à l'ordre de tracé sont réduits). Ou encore un systeme de particules de feu tracés en additif (je crois que c'est BLEND_ONE, BLEND_ONE en OGL meme si ça fait longtemps que j'en ai plus fait). Dans ce dernier cas l'ordre n'a aucune importance et tu peux meme utiliser le canal alpha pour varier l'intensité. Le problème par contre c'est que ça sature assez rapidement et que l'effet n'est pas toujours aussi réaliste que l'on voudrait. Beaucoup de jeux font ça pour les effets de sorts/armes etc...
 
Le problème du tri en général n'est pas soluble facilement.
J'indiquais le papier de "sort independent transparency" dans l'autre topic. C'est l'une des seules solutions "complete" que je connaisse. Subdiviser les polygones (avec ton BSP), en est une autre. N'utilise cela qu'en dernier recours !

n°878399
LeGreg
Posté le 20-10-2004 à 19:57:51  profilanswer
 

Une derniere chose:
trier les sprites d'un systeme de particule est generalement plus simple (ce sont des plans qui ne s'entrecoupent pas) et peut se faire en sauvant l'état d'une frame à l'autre.

n°880801
Panini
Posté le 23-10-2004 à 14:59:32  profilanswer
 

Comme LeGreg, je préconnise un tri à l'objet ou au batch (si tu as un BV à ce niveau) et tu rends en back to front.
Tu peux également essayer un rendu en 2 passes, alternative interessante au depth peeling :
 
- Alpha blend on
- Blend func comme tu veux
- Color Write off
- Z test on
- Z Write On
- Draw Batch
- Color Write On
- Z Write off
- Z Test On sur Z =
- Draw Batch.
 
Avec ça, tu obtiens un rendu "en coque" qui marche bien sur les objets concave. Fait bien attention à rendre en back to front car ton objet étant écrit dans le Z buffer, si tu rends après coup un objet qui est derrière, il disparaitra complètement.

n°887813
nithril
Posté le 01-11-2004 à 16:21:37  profilanswer
 

sinon pour un tri sur le CPU je te conseil ces deux articles :  
http://www.alrj.org/docs/3D/TriFaces.txt
http://www.codefr.org/tiki-index.p [...] rtion+Sort  


---------------
http://www.janaga.com

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

  openGL : sorting polygon

 

Sujets relatifs
OpenGL : opaque derriere multi blending...ca part en sucette[opengl] [linux] probleme de lib
supersampling openGL[OpenGL]L´eau coule et le ciel roule
Opengl animationproblème avec OpenGL
[opengl] à la recherche des fragment program sur geforce3/4[OpenGL] Gestion des extensions
Pour débutant : OpenGL ou DirectX ?opengl
Plus de sujets relatifs à : openGL : sorting polygon


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