Accueil > Forum > > > > OpenGL comment effacer une partie de l'ecran en gardant ce qu'il y a derriere?
OpenGL comment effacer une partie de l'ecran en gardant ce qu'il y a derriere?
samedi 17 décembre 2005 à 20:08:04 |
OpenGL comment effacer une partie de l'ecran en gardant ce qu'il y a derriere?

dletozeun
|
Bonjour
Oui ma question est loin d'etre clair!
Donc je precise:
En fait j'affiche une map en 3D sous opengl avec devant une interface graphique elle meme codéé avec opengl
En fait j'aimerais savoir comment je peux effacer une partie de l'interface apres avoir tout dessiner a l'ecran, pour faire apparaitre la map a la place, tel que dans photoshop lorsque l'on utilise les calques!
Peut faut t'il créer des calques: 1 pour la scene, 1 pour l'interface mais je ne vois pas comment...
Ou alors sinon peut etre y a t'il moyen apres avoir dessiner la scene, de donner a opengl les zones dans lesquelles l'interface ne doit pas etre dessinée?
Merci.
|
|
samedi 17 décembre 2005 à 22:48:17 |
Re : OpenGL comment effacer une partie de l'ecran en gardant ce qu'il y a derriere?

Galmiza
|
Bah une fois que ton back buffer est modifié, il est modifié, tu ne peux pas revenir en arriere.
Une solution est de réafficher la scene puis la partie que tu veux garder de l'interface.
Sinon, tu fais 2 rendus, un pour la scene l'autre pour l'interface, et
tu peux modifier à ta guise le rendu de l'interface avant de l'afficher
par dessus la scene.
Je ne peux que te conseiller la premiere.
|
|
samedi 17 décembre 2005 à 23:08:54 |
Re : OpenGL comment effacer une partie de l'ecran en gardant ce qu'il y a derriere?

kortin
|
Je n'ai jamais essayer ce genre de chose, mais il me semble que le tampon stencil est fait pour ça !
Regardes sur google, et donnes des nouvelles.
bonne progr, @+
|
|
samedi 17 décembre 2005 à 23:24:46 |
Re : OpenGL comment effacer une partie de l'ecran en gardant ce qu'il y a derriere?

luhtor
|
Utilise le test de scissor, si ta zone est rectangulaire.
void glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
A chaque fois que tu demandes un affichage ou un effacement le test de
scissor est effectué. Donc tu peux effectuer un glClear apres ca, ca
n'affectera que la zone rectangulaire définie.
|
|
samedi 17 décembre 2005 à 23:31:32 |
Re : OpenGL comment effacer une partie de l'ecran en gardant ce qu'il y a derriere?

kortin
|
oups, j'ai dit une bétise. Désolé.
|
|
dimanche 18 décembre 2005 à 10:22:01 |
Re : OpenGL comment effacer une partie de l'ecran en gardant ce qu'il y a derriere?

Pamaury
|
Non tu n'a pas dit une bétise: j'ai déjà fait çà avec le tampon stencil, d'ailleurs c'est le même principe que pour les réflexion: tu configure le stencil tu dessine dans la zone où tu veux autoriser l'affichage tu reconfigure le stencil tu affiches C'est vrai que c'est plus complexe Pour le glScissor je n'y avait pas pensé
A m a u r y
|
|
dimanche 18 décembre 2005 à 12:12:18 |
Re : OpenGL comment effacer une partie de l'ecran en gardant ce qu'il y a derriere?

dletozeun
|
j'essaies de metre en place le stencil buffer mais ca marche pas pas et ca rame a max!!!
voila ce que je fait:(avant bien sur , j'efface le stencil buffer avec glClear dans la fct de dessin principale)
//ici je dessine la zone qui peut etre remplie, dans le stencil buffer
glColorMask(0, 0, 0, 0);
glEnable(GL_STENCIL_TEST);
glStencilFunc(GL_ALWAYS, 1, 1);
glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
glBegin(GL_QUADS);
glTexCoord2d(0.1f,0.0f); glVertex2f(0.1f,0.72f);
glTexCoord2d(0.1f,0.17f); glVertex2f(0.1f,0.90f);
glTexCoord2d(0.2f,0.17f); glVertex2f(0.2f,0.90f);
glTexCoord2d(0.2f,0.0f); glVertex2f(0.2f,0.72f);
glEnd();
//ici je dessine un polygone par dessus qui empiete sur cette zone, il doit donc etre en partie effacé
glColorMask(1, 1, 1, 1);
glStencilFunc(GL_EQUAL, 1, 1);
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
glColor4f(0.8,0.8,0.8,0.9);
glBindTexture(GL_TEXTURE_2D,interElem[0]);
glBegin(GL_QUADS);
glTexCoord2d(0.0f,1.0f); glVertex2f(0.0f,1.0f);
glTexCoord2d(0.0f,0.0f); glVertex2f(0.0f,0.75f);
glTexCoord2d(1.0f,0.0f); glVertex2f(1.0f,0.75f);
glTexCoord2d(1.0f,1.0f); glVertex2f(1.0f,1.0f);
glEnd();
glDisable(GL_STENCIL_TEST);
// ensuite je dessine normalement sans le stencil buffer les autres objets...
Mais ca marche pas , ca donne aucun resultat ( meme resultat que sans stencil buffer) et en plus ca ralenti a fond : 2 fps!!
|
|
lundi 19 décembre 2005 à 16:21:05 |
Re : OpenGL comment effacer une partie de l'ecran en gardant ce qu'il y a derriere?

dletozeun
|
Réponse acceptée !
Bon voila ca marche...
Le code ci-dessus est bien correct il fallait juste prciser a windows que j'utilise le stencil buffer pour qu'il créé un emplacement memoire pour celui ci! Bref c'est tout con , il fallait juste remplacer un 0 par un 1!
Merci Luhtor! :)
|
|
Cette discussion est classée dans : ecran, effacer, opengl, interface, partie
Répondre à ce message
Sujets en rapport avec ce message
Effacer l'ecran [ par dot ]
Dans une application console en C++,quelle l'equivalentde cls(Basic)???Et pour effacer une seule ligne???merci d'avance
effacer l'ecran de la console dos en C [ par gollum ]
Comment effecer l'ecran de la console DOS en C ?
EFFACER L'ECRAN [Dev - c++] [ par JosueClement ]
Je suis en train de travailler sur un projet, et je suis vraiment bloqué.Est-ce que qqn pourrait me dire comment il ferait pour effacer l'écran d'affi
comment effacer l'ecran sur visual c++6.0 [ par cabarrus ]
salut!!!!je cherche l'instruction pour effacer l'ecran, je sais que sur certain compilateur c'est l'instruction 'clrscr();' mais celle ci n'a pas l'ai
Effacer ecran avec clrscr(); [ par Alexandre73 ]
Bonjour,voila je lutte depuis quelques temps pour utiliser cette fonction.. je ne sais pas quel librairie elle utilise et comment l'utiliser.C'est pou
texture opengl [ par lapal ]
salutje dois texturer une partie d' un fond marin(celui-ci etant affiche avec pleins de petits triangles). je n'arrive pas a texturer seulement une p
Effacer le contenu d'une fenetre... [ par Galmiza ]
Salut,Actuellement, pour effacer l'ecran je trace un rectangle plein blanc sur la fenetre.Or bizarrement, cette methode fait anormalement ramer le PC
effacer ecran [ par asmv ]
merci de me repondrecomment effacer l'ecran avec visual c++ mode consolesalut
OpenGl et gui [ par pac2 ]
Salut à tous,J'ai une application OpenGL écrite en C qui tourne. J'aimerais inclure dans cette application une interface graphique pour l'utilisateur
effacer une ligne de l'ecran [ par amin79 ]
Bonjour, Est ce qu'il y a une commende qui permet d'effacer une ligne de l'ecran ou une partie de la ligne. La commande delline(); ne marche pas avec
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|