Historique des modifications - Message

Message #8528

Sujet: ogl camera


Type Date Auteur Contenu
Correction acceptée 20-08-2010 21:07:05 Zorian
Texte original:
bon j'ai pas trop envie de papoter donc je rentre dans le sujet directement smile

je me suis lancer dans un moteur de jeux orienter side-scrolling il y a un bon mois, quasiment tout marche, sauf la camera.
les deux soucis que j'est sont:

  • impossible d'utilie gluPerspective, on ne voie plus rien, donc limiter a glOrtho
  • impossible de changer la camera de place/rotation


le soucis n'est pas le manque de tuto/explication mais, les exemple ne marche pas dans mon cas, aller savoir pourquoi !

un example du code vraiment simplifier de se que j'utilise:

Code c++ :


glClearColor(...);
glClear(GL\\_COLOR\\_BIT | GL\\_DEPTH\\_BUFFER\\_BIT);
glPushMatrix();

   glMatrixMode(GL\\_PROJECTION);
   glLoadIdentity();

      mode == CWM\\_ORTHOGRAPHIC ? glOrtho(0, screen->getInfo().size.width, screen->getInfo().size.height, 0, nears, fars) :
      gluPerspective(fovs, asps, nears, fars);

      glRotatef(-rot.x, 0,0,1);
      glRotatef(-rot.y, 0,1,0);
      glRotatef(-rot.z, 1,0,0);
     glTranslatef(-pos.x, -pos.y, -pos.z);

   glMatrixMode(GL\\_MODELVIEW);
   glLoadIdentity();

   glPushMatrix();
   glEnable(GL\\_BLEND);
   glBlendFunc(GL\\_SRC\\_ALPHA, GL\\_ONE\\_MINUS\\_SRC\\_ALPHA);
   glPushAttrib(GL\\_ENABLE\\_BIT);
     // shade model + glEnable -> antialiasing mode
     //rendu classic de l'object
   glPopAttrib();
   glPopMatrix();

glPopMatrix();
glWSwapBuffer(display, window);
glFlush();


pour se qui est de la position/rotation de la camera, gluLookAt ne fonctionne pas non plus, pos.z > 10 ? gluLookAt = on ne voie plus rien smile

edit: variable pour gluPerspective: fovs = 45.f, asps = window.width/(float)window.height, nears = -1.f, fars = 2500.f;
cela dit glOrtho semble limiter a 10.f pour fars ... une autre bizarerie
Correction proposée:
bon j'ai pas trop envie de papoter donc je rentre dans le sujet directement smile

je me suis lancé dans un moteur de jeux orienté side-scrolling il y a un bon mois, quasiment tout marche, sauf la camera.
les deux soucis que j'ai sont:

  • impossible d'utiliser gluPerspective, on ne voit plus rien, donc limité à glOrtho
  • impossible de changer la camera de place/rotation


le soucis n'est pas le manque de tuto/explication mais, les exemples ne marchent pas dans mon cas, allez savoir pourquoi !

un exemple du code vraiment simplifié de ce que j'utilise:

Code c++ :


glClearColor(...);
glClear(GL\\_COLOR\\_BIT | GL\\_DEPTH\\_BUFFER\\_BIT);
glPushMatrix();

   glMatrixMode(GL\\_PROJECTION);
   glLoadIdentity();

      mode == CWM\\_ORTHOGRAPHIC ? glOrtho(0, screen->getInfo().size.width, screen->getInfo().size.height, 0, nears, fars) :
      gluPerspective(fovs, asps, nears, fars);

      glRotatef(-rot.x, 0,0,1);
      glRotatef(-rot.y, 0,1,0);
      glRotatef(-rot.z, 1,0,0);
     glTranslatef(-pos.x, -pos.y, -pos.z);

   glMatrixMode(GL\\_MODELVIEW);
   glLoadIdentity();

   glPushMatrix();
   glEnable(GL\\_BLEND);
   glBlendFunc(GL\\_SRC\\_ALPHA, GL\\_ONE\\_MINUS\\_SRC\\_ALPHA);
   glPushAttrib(GL\\_ENABLE\\_BIT);
     // shade model + glEnable -> antialiasing mode
     //rendu classic de l'object
   glPopAttrib();
   glPopMatrix();

glPopMatrix();
glWSwapBuffer(display, window);
glFlush();


pour ce qui est de la position/rotation de la camera, gluLookAt ne fonctionne pas non plus, pos.z > 10 ? gluLookAt = on ne voit plus rien smile

edit: variable pour gluPerspective: fovs = 45.f, asps = window.width/(float)window.height, nears = -1.f, fars = 2500.f;
cela dit glOrtho semble limiter a 10.f pour fars ... une autre bizarrerie
Dernière modification 20-08-2010 14:36:38 Magun
bon j'ai pas trop envie de papoter donc je rentre dans le sujet directement smile

je me suis lancé dans un moteur de jeux orienté side-scrolling il y a un bon mois, quasiment tout marche, sauf la camera.
les deux soucis que j'ai sont:

  • impossible d'utiliser gluPerspective, on ne voit plus rien, donc limité à glOrtho
  • impossible de changer la camera de place/rotation


le soucis n'est pas le manque de tuto/explication mais, les exemples ne marchent pas dans mon cas, allez savoir pourquoi !

un exemple du code vraiment simplifié de ce que j'utilise:

Code c++ :


glClearColor(...);
glClear(GL\\\\_COLOR\\\\_BIT | GL\\\\_DEPTH\\\\_BUFFER\\\\_BIT);
glPushMatrix();

   glMatrixMode(GL\\\\_PROJECTION);
   glLoadIdentity();

      mode == CWM\\\\_ORTHOGRAPHIC ? glOrtho(0, screen->getInfo().size.width, screen->getInfo().size.height, 0, nears, fars) :
      gluPerspective(fovs, asps, nears, fars);

      glRotatef(-rot.x, 0,0,1);
      glRotatef(-rot.y, 0,1,0);
      glRotatef(-rot.z, 1,0,0);
     glTranslatef(-pos.x, -pos.y, -pos.z);

   glMatrixMode(GL\\\\_MODELVIEW);
   glLoadIdentity();

   glPushMatrix();
   glEnable(GL\\\\_BLEND);
   glBlendFunc(GL\\\\_SRC\\\\_ALPHA, GL\\\\_ONE\\\\_MINUS\\\\_SRC\\\\_ALPHA);
   glPushAttrib(GL\\\\_ENABLE\\\\_BIT);
     // shade model + glEnable -> antialiasing mode
     //rendu classic de l'object
   glPopAttrib();
   glPopMatrix();

glPopMatrix();
glWSwapBuffer(display, window);
glFlush();


pour ce qui est de la position/rotation de la camera, gluLookAt ne fonctionne pas non plus, pos.z > 10 ? gluLookAt = on ne voit plus rien smile

edit: variable pour gluPerspective: fovs = 45.f, asps = window.width/(float)window.height, nears = -1.f, fars = 2500.f;
cela dit glOrtho semble limiter a 10.f pour fars ... une autre bizarrerie
Création du message 20-08-2010 14:33:53 Magun
bon j'ai pas trop envie de papoter donc je rentre dans le sujet directement smile

je me suis lancé dans un moteur de jeux orienté side-scrolling il y a un bon mois, quasiment tout marche, sauf la camera.
les deux soucis que j'ai sont:

  • impossible d'utiliser gluPerspective, on ne voit plus rien, donc limité à glOrtho
  • impossible de changer la camera de place/rotation


le soucis n'est pas le manque de tuto/explication mais, les exemples ne marchent pas dans mon cas, allez savoir pourquoi !

un exemple du code vraiment simplifié de ce que j'utilise:

Code c++ :


glClearColor(...);
glClear(GL\\\\_COLOR\\\\_BIT | GL\\\\_DEPTH\\\\_BUFFER\\\\_BIT);
glPushMatrix();

   glMatrixMode(GL\\\\_PROJECTION);
   glLoadIdentity();

      mode == CWM\\\\_ORTHOGRAPHIC ? glOrtho(0, screen->getInfo().size.width, screen->getInfo().size.height, 0, nears, fars) :
      gluPerspective(fovs, asps, nears, fars);

      glRotatef(-rot.x, 0,0,1);
      glRotatef(-rot.y, 0,1,0);
      glRotatef(-rot.z, 1,0,0);
     glTranslatef(-pos.x, -pos.y, -pos.z);

   glMatrixMode(GL\\\\_MODELVIEW);
   glLoadIdentity();

   glPushMatrix();
   glEnable(GL\\\\_BLEND);
   glBlendFunc(GL\\\\_SRC\\\\_ALPHA, GL\\\\_ONE\\\\_MINUS\\\\_SRC\\\\_ALPHA);
   glPushAttrib(GL\\\\_ENABLE\\\\_BIT);
     // shade model + glEnable -> antialiasing mode
     //rendu classic de l'object
   glPopAttrib();
   glPopMatrix();

glPopMatrix();
glWSwapBuffer(display, window);
glFlush();


pour ce qui est de la position/rotation de la camera, gluLookAt ne fonctionne pas non plus, pos.z > 10 ? gluLookAt = on ne voit plus rien smile

edit: variable pour gluPerspective: fovs = 45.f, asps = window.width/(float)window.height, nears = -1.f, fars = 2500.f;
cela dit glOrtho semble limiter a 10.f pour fars ... une autre bizarrerie

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
215 invités en ligne
membre en ligne: -
RSS Feed