RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Problème avec le blending.

Forum : OPENGL
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ OPENGL

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM OPENGL

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
The_Moye
Nouveau membre
Inscrit : 15/01/2006
Messages : 10
Message
#85180
Posté le 15/01/06 à 14:51
Bonjour,
Voilà, je voudrais utiliser l'antialiasing, histoire de donner un peu de gueule à mon p'tit projet OpenGl, mais j'ai un petit problème...
Je suis tombé sur un petit tuto qui semble marcher (le crélénage est bien diminué) mais un sale effet apparait : on voit certaines lignes de mon objet...
Par exemple, avec une simple teapotsolid, certaines lignes sont visible...C'est assez désagréable...
Voici mon bout de code :


glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); glHint(GL_POLYGON_SMOOTH_HINT,GL_NICEST); glEnable(GL_POLYGON_SMOOTH);


Et dans mon affichage un bête :


glColor4f(1.0,0.0,1.0,ThBlend); glutSolidTeapot(0.5);


Si quelqu'un peu m'aider, j'accepte avec joie Smiley

Merci d'avance =)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

Françoué
Membre newbie
Inscrit : 15/12/2005
Messages : 46
Message
#87403
Posté le 08/02/06 à 20:15
Salut,

Je ne suis pas certain de pouvoir t'aider... "Blending" qui signifie "mélange des couleurs"... Francis Cabrel qui utilisait le blending dans la cabane du... Je m'égare, je m'égare : peut-être tu es tombé sur un mauvais tutorial, tout simplement ?

A quel genre de résultat veux tu parvenir ? Qualité photographique style retouche d'image impeccable à des fins politiques ? Tu veux faire un petit jeux vidéo, et la rapidité importe beaucoup ? Parle, confie -toi, mon ami, nous sommes tes frères, et avec Raël note guide... Je m'égare encore...


PS : Raël n'est pas notre guide, et Francis Cabrel n'a jamais chanté "le blending dans la cabane du pêcheur"... C'est dur dur ces réflexes conditionnés que nous inculquent les radios... et les gourous !

PPS : Je n'ai jamais utilisé de fonction antialiasing, mais le livre rouge sur Opengl 1.1 parle de telles fonctions (il doit être disponible sur le site officiel : si tu sais lire l'anglais)... Il semble y en avoir de plusieures sorte, plus ou moins rapides... Certaines prennent en compte la distance par rapport à l'observateur.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

The_Moye
Nouveau membre
Inscrit : 15/01/2006
Messages : 10
Message
#87415
Posté le 08/02/06 à 23:13
Au moins je me suis bien pissé dessus en lisant ta reponse, Ô programmeur éclairé ki passait par ici.

En fait le Blending comme Francis l'a si bien dit, est effectivement un melange de couleur (en fait c'est l'Opacité dans OpenGL)

Mon problème a été partielement résolu, en cherchant un peu j'ai trouvé d'autre technique et je suis passé au Multisampling afin de faire du FullAntialiasing et non plus de lisser simplement mes géométires, ce qu'était sencé faire mes petits bouts de codes placé plus haut.

Pourquoi ça merdai chez moi?
Et bien tout simplement car ma version de la sdk d'OpenGL datait un max...

Maintenant ma teapot est super lisse, ça fait zizir (par contre je tient à signaler que les bouts de codes sus-cités ne marchent pas avec des objets 3ds loader <<< peut être que ça vient de chez moi, mais le resultat est orrible)

Donc, moralitée, pour faire de l'antialiasing, deux solutions :
_Vous cherchez un rendu impecable, utilisés le Jittering (calculer une image plus grande que celle a afficher)
_Vous chercher un lissage qui ne demande pas trop de ressource : multisampling.

Par contre, apparement la Glut ne permet pas d'initialiser le multisampling avec une autre valeur que 0 (ski est crétin...un nombre de sample à 0, c'est comme un fromage sans pain, un plateau de fromage sans Pavé....je m'égard aussi tient ^^) Ou alors je n'ai pas trouvé, et si vous savez faire, merci de me faire un graaaand signe car j'en suis rendu à créer ma fenêtre avec les WGL (pour windob) et les XGL (pour X-OS), se qui fais quazimen 200 lignes de codes supplémentaires : /

Donc si vous savez initialiser le multisample sous Glut, je suis preneur ^^

Wala ^^ Merci les gens

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Françoué
Membre newbie
Inscrit : 15/12/2005
Messages : 46
Message
#87695
Posté le 11/02/06 à 09:11
>> " Au moins je me suis bien pissé dessus en lisant ta reponse, Ô programmeur éclairé ki passait par ici. "

... Programmeur éclairé sur ses propres capacités... Par contre, lorsque le nombre de bug devient trop important, je deviens terne :-((

Ton message m'a donné l'envie de m'essayer à cette fonction d'anti-aliasing par polygones.

Ca marche bien, mais très lentement ; beaucoup moins rapidement que dans un certain jeu vidéo qui utilise la fonction antialiasing... Et effectivement, ça ne marche pas du tout sur ma vieille machine :-( ... En principe la fonction antialiasing de polygone est dispo dans Opengl 1.1. C'est en tout cas ce qui est indiqué dans le manuel.

Le multisamplig ? Je ne connais pas... Et je te souhaites bonne chance !


PS : moi c'est pas Francis, mais François.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

The_Moye
Nouveau membre
Inscrit : 15/01/2006
Messages : 10
Message
#87707
Posté le 11/02/06 à 12:09
Smiley Francis, François.... Smiley

J'ai un peu abandonné le mutlisampling pour le moment, ça me soul de faire l'init de ma fenêtre sans Glut (le progammeur est feignant.... ^^)

Je fais des reflexions mnt Smiley

J'ai suivi un tuto pour faire une reflexion de ma géométrie sur un plan, grâce au Stencil Buffer et a un plan de clipping, le resultat est vraiment pas mal, mais je dessine 2 fois toute ma géométrie...Donc niveau performance, ça pêche un peu...

Je crois qu'il est possible de créer une texture a partir de ce que voi la caméra et de la plaquer ensuite sur mon plan (ou sur mes p'tits vaisseaux spatiaux, que la Map se reflette dedans =D), je vais essayer ça.

Toujours pareil, si qqn sait le faire, toute aide est la bienvenue :)

Merki

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Françoué
Membre newbie
Inscrit : 15/12/2005
Messages : 46
Message
#87828
Posté le 12/02/06 à 09:36
<<J'ai un peu abandonné le mutlisampling pour le moment, ça me soul de faire l'init de ma fenêtre sans Glut (le progammeur est feignant.... ^^)>>

Tu peux peut-être récupérer des morceaux de code déjà tout faits... C'est ce que je fait, il y en beaucoup qui trainent : par exemple regarde les sources d'ultrafil, ça marche sans glut... Et puis Dans Dev C++, il y a un petit programme d'à peine 160 lignes qui ouvre une petite fenêtre et qui fait tournoyer un triangle... Il n'y a pas toujours besoin de de tout reprogrammer : suffit parfois de savoir où s'immiscer ^^



<<Je fais des reflexions mnt>>

mnt ?


<<J'ai suivi un tuto pour faire une reflexion de ma géométrie sur un plan,>>

Réflexion genre reflet sur un parquet bien ciré, ou sur un miroir ?


<<grâce au Stencil Buffer et a un plan de clipping, le resultat est vraiment pas mal, mais je dessine 2 fois toute ma géométrie...>>

Si tu veux faire une réflexion style miroir, je vois mal comment tu pourrais faire autrement.


<<Donc niveau performance, ça pêche un peu...>>

Ce n'est pas forcément dû au fait qu tu dessines ta géométrie deux fois. J'ai programmé un petit truc où tout devrait être dessiné deux fois. Et ça fonctionnait bien, car la plupart des carte 3d, même un peu âgées, peuvent afficher quand même confortablement des centaines de polygones par fraction de seconde.

J'ai utilisé une fois un buffer axiliaire, pour arriver au même résultat ; et les performances du programme ont beaucoup chutté. Cela dépend de ce que le matériel est capable de prendre en charge.

On peut arriver aux même résultat de plusieurs manières différentes : parfois il faut trouver une petite astuce.


<<Je crois qu'il est possible de créer une texture a partir de ce que voi la caméra et de la plaquer ensuite sur mon plan>>

Oui. Voir le manuel : je crois que c'est indiqué.


<<(ou sur mes p'tits vaisseaux spatiaux, que la Map se reflette dedans =D), je vais essayer ça.>>

Des petits vaisseaux spaciaux qui réfléchissent l'environnement ? Dans les version plus récente d'Opengl, je crois qu'il y a une fonction "GL_REFLECTION_MAP", ou "CUBE_ENVIRONNEMENT_MAPPING" ; et que c'est dynamique, c'est à dire que si un autre petit vaiseau passe à côté, il se reflètera. Il y a forcément qu'elqu'un qui peut t'indiquer un tuto sur le sujet, ici, j'ai cliqué sur un lien, et Oh ! les belles boules chromées !

Mais peut-être bien qu'il est possible de lire directement ce qu'il y a dans ton buffer d'affichage principal.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

The_Moye
Nouveau membre
Inscrit : 15/01/2006
Messages : 10
Message
#87841
Posté le 12/02/06 à 11:54
Ce que j'aime avec toi François, c'est que des mon reveil tu m'offre une belle histoire à lire :)

[quote]Tu peux peut-être récupérer des morceaux de code déjà tout faits...[/quote]

Oui, j'ai regardé par exemple sur les tutos d'Antoche, il y a une init de fenêtre sans Glut, mais elle plante parfois...(Impossibilité de la fermer, le rafraichissement ne se fait pas...)

[quote]Réflexion genre reflet sur un parquet bien ciré, ou sur un miroir ? [/quote]

Reflexion genre sur un parqute bien ciré :D:
(Me fait penser qu'il faut que je lave chez moi...)

[quote]la plupart des carte 3d, même un peu âgées, peuvent afficher quand même confortablement des centaines de polygones par fraction de seconde.[/quote]

Le probleme c'est que j'ai plusieur milliers de polygones à afficher...Donc une fois doublés...Mais je vais revoir cela (largement) à la baisse.

[quote]Oui. Voir le manuel : je crois que c'est indiqué.[/quote]

On ne peut rien te cacher :lol:

[quote]Des petits vaisseaux spaciaux qui réfléchissent l'environnement ? Dans les version plus récente d'Opengl, je crois qu'il y a une fonction "GL_REFLECTION_MAP", ou "CUBE_ENVIRONNEMENT_MAPPING"[/quote]

Je ne connais pas, mais ça m'interesse bigrement!!


Tant que je suis là, j'ai un petit soucis...
Je voulais appliquer des textures sur un objet dans les formats GL_BGR_EXT et GL_BGRA_EXT, mais à la compilation ça ne passe pas, je suis bien embêté...
Si je repasse en RGB ou RGBA, les couleurs sont inversé (une map à dominante orangée devien violète)

Françoué si tu peux m'aider ^^

Merci!

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Françoué
Membre newbie
Inscrit : 15/12/2005
Messages : 46
Message
#87851
Posté le 12/02/06 à 13:07
Il était une fois, un programmeur sachant programmer ayant de menus problèmes et ne trouvant point d'aide, même chez les programmeurs les plus avisés...

<<Je ne connais pas, mais ça m'interesse bigrement!!>>

Je ne connais pas non plus, mais moi, ça m'intéresse bigrement moins, pour l'instant, tout du moins.


<<Tant que je suis là, j'ai un petit soucis...
Je voulais appliquer des textures sur un objet dans les formats GL_BGR_EXT et GL_BGRA_EXT, mais à la compilation ça ne passe pas, je suis bien embêté...>>

Je ne connais pas ces formats. Quelle diférence avec RBG, hormis l'orde de "RGB/BGR" ?


<<Si je repasse en RGB ou RGBA, les couleurs sont inversé (une map à dominante orangée devien violète)>>

? Les compatibles PC sont parfois moins compatibles que le veut la légende... Mais néanmoins, je me souviens avoir eu un problème similaire en passant d'un mode 65536 couleurs à 16 millions. Je ne sais pas, vérifie, c'est peut-être cela ? Ou alors cela vient de l'ordre RGB/BGR ?

J'ai une anecdote cocasse au sujet de la compatibilté des ibm : je me souviens avoir eu en ma possession une manette de jeux vidéo signée Microsoft lui-même, et sensée être pour "IBM et compatibles". Malheureusement, mon IBM était moins compatible que les autres :-(... Et microsoft savait que je rencontrerai des problèmes et avait tout prévu : dans un fichier "lisez-moi", il m'a conseillé de jouer sans le son, voire même sans la manette :-(

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

The_Moye
Nouveau membre
Inscrit : 15/01/2006
Messages : 10
Message
#87864
Posté le 12/02/06 à 14:55
Hu², essayons de repondre :p

[quote]Je ne connais pas ces formats. Quelle diférence avec RBG, hormis l'orde de "RGB/BGR" ? [/quote]

Je pense que c'est le codage des couleurs qui varit...Puisque ma map orange devien violète...Il faudrait faire un essaie avec une map rouge par exemple.
Mais j'ai trouvé pourquoi Visual ne compilai point, j'ai fais le boulet pour changer, oublié d'include glext.h ^^

Et puis je vien de diviser mon nombre de polygone pour chaque vaisseau par deux, en suprimant les faces intérieurs que l'on ne voit pas au travers des pieces transparentes.

(et au passage je commence à avoir mal à la tête ^^ Osef comme on di par chez moi :lol: )

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Françoué
Membre newbie
Inscrit : 15/12/2005
Messages : 46
Message
#87970
Posté le 13/02/06 à 07:58
<<Je pense que c'est le codage des couleurs qui varit...Puisque ma map orange devien violète...>>

Voyons, en optique/informatique :
Orange = Rouge + un peu de vert
Violet = une peu rouge + un peu de bleu.


<<Il faudrait faire un essaie avec une map rouge par exemple. >>

Bonne idée.


<<Et puis je vien de diviser mon nombre de polygone pour chaque vaisseau par deux, en suprimant les faces intérieurs que l'on ne voit pas au travers des pieces transparentes.>>

Opengl prend en charge l'élimination des faces qui sont "de dos", avec "glEnable(CULL_FACE);", ou un truc dans le genre. Mais il faut que les polygones aient tous été rigoureusement définis, en indiquant les points dans le sens des aiguilles d'une montre (ou tous dans le sens inverse).

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM OPENGL



    PAGES : [1] [2]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.