Historique des modifications - Message

Message #8528

Sujet: ogl camera


TypeDateAuteurContenu
Correction acceptée20-08-2010 21:07:05Zorian
Texte original:
bon j'ai pas trop envie de papoter donc je rentre dans le sujet directementsmile

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 riensmile

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 directementsmile

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 riensmile

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 modification20-08-2010 14:36:38Magun
bon j'ai pas trop envie de papoter donc je rentre dans le sujet directementsmile

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 riensmile

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 message20-08-2010 14:33:53Magun
bon j'ai pas trop envie de papoter donc je rentre dans le sujet directementsmile

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 riensmile

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

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
38 invités en ligne
membre en ligne: -
RSS Feed