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

  FORUM HardWare.fr
  Programmation
  C++

  [C++ Opengl]Un debutant opengl n'affiche pas ce qu'il veut

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++ Opengl]Un debutant opengl n'affiche pas ce qu'il veut

n°1106912
guepe
J'ai du noir sur la truffe ?
Posté le 03-06-2005 à 13:46:00  profilanswer
 

je debute l'opengl, et j'ai suivis un tutorial vu sur Games Creators Network...
 
bien sur en suivant le tuto tout marche tres bien (et c'est bien explique, aucuns problemes) mais je n'arrive pas a faire exactement ce que je veut ensuite.
Le but du tuto etait au final de creer un cube immobile au centre et deux satellites identiques mis a l'echelle...
voici le code de positionnement des differents cubes :  
 

Code :
  1. glCallList(id_cube);         //dessine le cube 1   (petit)
  2.      glPushMatrix();
  3.      glRotated(angle,0,1,0);      //rotation
  4.      glTranslatef(0,0,-5);        //translation
  5.      glScaled(0.5,0.5,0.5);       //mise a echelle
  6.    
  7.      glCallList(id_cube); // cube 2
  8.      glPopMatrix();
  9.      glPushMatrix();
  10.      glRotated(angle,0,1,0);
  11.      glTranslatef(0,0,5);
  12.      glRotated(angle,0,1,0);
  13.      glScaled(0.5,0.5,0.5);
  14.    
  15.      //buggé a mort
  16.      glCallList(id_cube); // cube 3
  17.      glPopMatrix();
  18.      glPushMatrix();
  19.      glRotated(angle/3,1,0,0);
  20.      glTranslatef(0,5,0);
  21.      glRotated(angle/4,1,3,1);
  22.      glScaled(0.5,0.5,0.5);
  23.    
  24.    
  25.      glPopMatrix();
  26.    
  27.      glutSwapBuffers();


 
tout va tres bien, sauf que comme ca le cube trois est immobile (! alors que je lui fais faire une rotation (et une mise a echelle, juste pour bien voir qu'il ne se passe rien)
si j'ajoute, juste avant le dernier glPopMatrix() un glCallList(id_cube), j'ai bien un cube qui s'affiche (et qui tourne) - bien sur on ne le voit que si j'enleve la mise a echelle, sinon on le voit pas il est dans le cube immobile - mais il s'affiche au dessus du precedent, toujours aussi immobile
 
j'ai pas du bien comprendre comment il fallait faire, ca doit pourtant pas etre bien complique  :??:  
 
sinon j'ai un autre petit probleme : je n'arrive pas a lancer la fenetre en plein ecran...
 

Code :
  1. glutInit(& argc, argv);   //transfert a glut les param. d'init.
  2.      glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);    //mise en place des parametres de la fenetre, simple tampon
  3.      //glutFullScreen();            //cree une fen. plein ecran
  4.    
  5.      glutInitWindowSize(width, height); //taille et pos. de la fenetre
  6.      glutInitWindowPosition(50, 50);
  7.    
  8.      //id_cube=glGenLists(1); // ici, on a besoin que d'une liste
  9.      glutCreateWindow("Fenetre OpenGL" ); 
  10.      Init();           //appelle le test Z-buffer  
  11.      Reshape(width, height);


 
ici le code de ma creation de fenetre, bah si j'enleve les initwindowsize et position, que je fais un reshape avec les bon width/height à la defnition de mon ecran, ca plante  :cry:  
 
comment creer une fenetre en plein ecran???
 
merci pour tout!!!  :wahoo:


---------------
Un blog qu'il est bien
mood
Publicité
Posté le 03-06-2005 à 13:46:00  profilanswer
 

n°1107029
darkstalke​r
Saturn NTSC-J, What Else ?
Posté le 03-06-2005 à 14:40:40  profilanswer
 

tu fais tes transformations après l'affichage toi ?

n°1107450
guepe
J'ai du noir sur la truffe ?
Posté le 03-06-2005 à 17:51:25  profilanswer
 

Citation :

tu fais tes transformations après l'affichage toi ?


 
non pourquoi??? j'ai bien mon inversion de buffer apres les transformation???
et si c'est pour mon code de creation de fenetre, evidemment ce bout la est place avant  :lol: je l'ai place apres parce que ce n'est pas ma priorite pour le moment ;-)


---------------
Un blog qu'il est bien
n°1107495
jerem38
Posté le 03-06-2005 à 18:14:44  profilanswer
 

guepe a écrit :

Citation :

tu fais tes transformations après l'affichage toi ?


 
non pourquoi??? j'ai bien mon inversion de buffer apres les transformation???
et si c'est pour mon code de creation de fenetre, evidemment ce bout la est place avant  :lol: je l'ai place apres parce que ce n'est pas ma priorite pour le moment ;-)


 
il veut dire que tu dois faire tes transformation avant l'affichage du cube.
 

Code :
  1. // dessin du cube  1
  2. 1. transformations (rotate, translate, scale...)
  3. 2. glCallList(id_cube);
  4. // dessin du cube  2
  5. 1. transformations (rotate, translate, scale...)
  6. 2. glCallList(id_cube);
  7. ...


Message édité par jerem38 le 03-06-2005 à 18:15:17
n°1107506
guepe
J'ai du noir sur la truffe ?
Posté le 03-06-2005 à 18:25:40  profilanswer
 

Citation :

il veut dire que tu dois faire tes transformation avant l'affichage du cube.


ahhh.. j'avour que j'ai copie le tuto, et comme tel quel ca marchait.. je ne comprenais pas ..
 
bon je cours tester comme ca!


---------------
Un blog qu'il est bien
n°1107508
arconius
Posté le 03-06-2005 à 18:27:14  profilanswer
 

   *      glPushMatrix();
    *      glRotated(angle,0,1,0);      //rotation
    *      glTranslatef(0,0,-5);        //translation
    *      glScaled(0.5,0.5,0.5);       //mise a echelle
    *      glCallList(id_cube);         //dessine le cube 1    
    *      glPopMatrix();
    *  
    *      glPushMatrix();
    *      glRotated(angle,0,1,0);
    *      glTranslatef(0,0,5);
    *      glRotated(angle,0,1,0);
    *      glScaled(0.5,0.5,0.5);    
    *      glCallList(id_cube); // cube 2
    *      glPopMatrix();
    *      
    *      //buggé a mort
    *      glPushMatrix();
    *      glRotated(angle/3,1,0,0);
    *      glTranslatef(0,5,0);
    *      glRotated(angle/4,1,3,1);
    *      glScaled(0.5,0.5,0.5);
    *      glCallList(id_cube); // cube 3
    *      glPopMatrix();
    *      
    *      glutSwapBuffers();
 
 
et pour le plein écran je sais pas j'utilise pas glut moi :)

n°1107511
guepe
J'ai du noir sur la truffe ?
Posté le 03-06-2005 à 18:28:19  profilanswer
 

bon et bien je vous remercie infiniment.... ca marche "au poil" maintenant !! yaisse!
 
par contre personne en ce qui concerne mon petit probleme de "fullscreen"???
 
[edit]

Citation :

et pour le plein écran je sais pas j'utilise pas glut moi :)


 
ils utilisent ca dans le tuto...
Quels sont exactement les avantages/inconvenients de glut??
 
bon les avantages, deja cela me parait plus simple, plus rapide d'utiliser opengl... mais les inconvenients? d'autres avantages??
 
plein de questions je sais, mais lorsque l'on debute dans une si grosse librairie... forcement ;-)...
 
merci encore


Message édité par guepe le 03-06-2005 à 18:30:24

---------------
Un blog qu'il est bien
n°1109000
prophet-pr​o
Posté le 05-06-2005 à 21:07:17  profilanswer
 

essai la routine suivante :
 
void glutFullScreen(void);
 
donc tu tapes dans ton main juste après l'initialisation de GLUT :
 

Code :
  1. glutFullScreen();


 
et ça devrait être bon  ;)


Message édité par prophet-pro le 05-06-2005 à 21:07:31
n°1109002
prophet-pr​o
Posté le 05-06-2005 à 21:08:57  profilanswer
 

d'ailleurs j'viens de rémarquer que c'était indiqué dans ton code : suffit de décommenter la ligne !!!!!

n°1109169
guepe
J'ai du noir sur la truffe ?
Posté le 06-06-2005 à 08:11:13  profilanswer
 

Citation :

d'ailleurs j'viens de rémarquer que c'était indiqué dans ton code : suffit de décommenter la ligne !!!!!


 
oui mais en decommentant cete ligne ca plante...
en fait, si je place cette ligne plus bas, apres la creation de la fentre, cela fonctionne donc maintenant je suis en fullscreen ;-) cool!
 
merci pour tout!


---------------
Un blog qu'il est bien
mood
Publicité
Posté le 06-06-2005 à 08:11:13  profilanswer
 

n°1109408
chicotruss
Posté le 06-06-2005 à 11:37:36  profilanswer
 

Citation :

comment creer une fenetre en plein ecran???


 
A part le glutFullScreen(), il existe une autre fonction (non documentée dans glut) qui est beacoup plus performante: glutEnterGameMode()

n°1110062
guepe
J'ai du noir sur la truffe ?
Posté le 06-06-2005 à 17:40:33  profilanswer
 

tiens je vais essayer ca !


---------------
Un blog qu'il est bien

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

  [C++ Opengl]Un debutant opengl n'affiche pas ce qu'il veut

 

Sujets relatifs
[Débutant php/sql] Trier les donnéesDébutant en macro sur excel!
VB6 débutant : besoin daide ou de piste..!problème de fps openGl
Projet opengl[Débutant]Sécurité Connection
Mise en forme du code et format affichéDébutant: vector non reconnu
Affiche l'architecture d'un XHTMLquestion de débutant (having)
Plus de sujets relatifs à : [C++ Opengl]Un debutant opengl n'affiche pas ce qu'il veut


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