begin process at 2012 05 30 00:34:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

opengl : lumière, fog pose problème quand picking


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

opengl : lumière, fog pose problème quand picking

vendredi 21 octobre 2005 à 10:52:52 | opengl : lumière, fog pose problème quand picking

kortin

   Bonjour,
j'aimerais ajouté le fog et la lumière dynamique dans mon projet openGL.
Tout fonctionne bien, mais lors de la sélection d'un objet(picking), les objets deviennent noirs, et le fog produit un résultat inattendu.

voici le bout de code classique : (picking)
 
const BUFSIZE = 512;
 GLuint selectBuf[BUFSIZE];
 GLint hits;
 GLint viewport[4];
 glGetIntegerv(GL_VIEWPORT, viewport);
 glSelectBuffer(BUFSIZE,selectBuf);
 glRenderMode(GL_SELECT);
 glInitNames();
 glMatrixMode(GL_PROJECTION);
 glPushMatrix();
 glLoadIdentity();
 gluPickMatrix(event.GetX(), viewport[3]-event.GetY(), 2.0,2.0,viewport);
 int w, h;
    GetClientSize(&w, &h);
 gluPerspective(60.0,(GLdouble)w/h,0.1,100.0);
 Render();
 glPopMatrix();
 glFlush();
 hits = glRenderMode(GL_RENDER);


Est ce que quelqu'un d'entre vous à déjà rencontré ce genre de problème ?
Merci de votre aide.
Cordialement.
vendredi 21 octobre 2005 à 12:53:43 | Re : opengl : lumière, fog pose problème quand picking

luhtor

Ta quoi dans ta fonction Render ? tu peux la poster en résumé si possible.
vendredi 21 octobre 2005 à 13:08:04 | Re : opengl : lumière, fog pose problème quand picking

kortin

J'ai ça :

Render()
{
 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

 glPushMatrix();
 cam.SetToPos();
 m_listeView->CallList(); ou bvArrayObject::GetInstance()->Display();
 glPopMatrix();
 glFlush();
}
tout marche bien, en tant normal sauf quand on selectionne un object graphique, tout foire ensuite.
merci

vendredi 21 octobre 2005 à 18:17:59 | Re : opengl : lumière, fog pose problème quand picking

KeniiyK

Membre Club


glInitNames();
 glMatrixMode(GL_PROJECTION);
 glPushMatrix();
 glLoadIdentity();
 gluPickMatrix(event.GetX(), viewport[3]-event.GetY(), 2.0,2.0,viewport);
 int w, h;
    GetClientSize(&w, &h);
 gluPerspective(60.0,(GLdouble)w/h,0.1,100.0);

glLoadMatrix(GL_MODELVIEW);
 Render();
 glFlush(); // a deplacer ici...

 glMatrixMode(GL_PROJECTION);
 glPopMatrix();
 hits = glRenderMode(GL_RENDER);

glLoadMatrix(GL_MODELVIEW);

Essaye avec les modifs en rouge.... ca marchera peut etre mieux...

KeniiyK
vendredi 21 octobre 2005 à 18:18:19 | Re : opengl : lumière, fog pose problème quand picking

KeniiyK

Membre Club
Réponse acceptée !


glInitNames();
 glMatrixMode(GL_PROJECTION);
 glPushMatrix();
 glLoadIdentity();
 gluPickMatrix(event.GetX(), viewport[3]-event.GetY(), 2.0,2.0,viewport);
 int w, h;
    GetClientSize(&w, &h);
 gluPerspective(60.0,(GLdouble)w/h,0.1,100.0);

glMatrixMode(GL_MODELVIEW);
 Render();
 glFlush(); // a deplacer ici...

 glMatrixMode(GL_PROJECTION);
 glPopMatrix();
 hits = glRenderMode(GL_RENDER);

glMatrixMode(GL_MODELVIEW);

Essaye avec les modifs en rouge.... ca marchera peut etre mieux...

KeniiyK
samedi 22 octobre 2005 à 14:43:30 | Re : opengl : lumière, fog pose problème quand picking

kortin

ah mais mince. Ouai, le problème venait du fais fait que j'avais oublier le 2eme glLoadMatrix(GL_MODELVIEW);

merci beaucoup KeniiyK.

C'est bizarre, je m'était inspiré du redbook, et eux aussi l'ont oublié. étrange mais merci quand même.



Cette discussion est classée dans : opengl, gl, picking, viewport, fog


Répondre à ce message

Sujets en rapport avec ce message

Picking opengl [ par gillescpp ] Bonjour,Voila un ceratint temps que j'essaie de maitriser le picking et jusqu'a présent, c'est sans success.Le code suivant comporte deux fonctions : GL_MAX_LIGHTS [ par manolobis ] Bonjour à tous, toutes,Sous OpenGL et concernant les lumières on retrouve souvent les information suivantes:- Le nombre de lumières maxi dépend de l'i OpenGL : les vertex buffer ca marche comment ? [ par eplanet ] Bonjour à tous, je voudrais me mettre aux vertex buffer pour optimiser un programme en openGL, seulement, lorsque j'écris la ligne :        glBindBuff Afficher un point en opengl [ par DMK04 ] Bonjour,je commence l'opengl et je n'arrive pas à afficher un point.J'ulise le code suivant :#include #include void renderScene(void) {glClear(GL_COLO Listes OpenGL : Problème de texture [ par smoove5198 ] Bonjour, Je travaille actuellement sur un projet en opengl. Pour des raisons de performence je me suis ecrit une classe qui crée du texte a partir d' OpenGL [ par xarier ] SALUT TOUT le monde j'ai un prob que je comprend pas bienquand je met ce code :gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB, ilGetInteger(IL_IMAGE_WIDTH), De l'openGL sur le bureau [ par Alcantornet ] Hello le peuple, J'ai fait une petite horloge en openGL et j'aimerais pouvoir la mettre à la place de l'arrière plan. Je pense qu'il faut que je lie Texture openGl [ par neodelphi ] Bonjour tout le monde, j'essaye désespérément d'ajouter des textures dans mon projet openGl, mais je devient fou... J'ai écrit une classe qui me perm Fenetre MS DOS derrière ma fenêtre opengl [ par nisaloncaje ] ReBonjour, j'utilise dev c++ et lorsque je compile le projet fourni dans le tutorial : http://www.linuxgraphic.org/section3d/openGL/disponible ici :<A light opengl [ par methos69 ] bonjour,j'ai un probleme incomprehensible surement du a un truc tout con...J'ai redefini GL_LIGHT0 en une lumiere spot avec tout ce qu'il faut, mais


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,756 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales