Partage
  • Partager sur Facebook
  • Partager sur Twitter

tuto open gl de Kayl

Sujet résolu
    13 mai 2006 à 13:52:12

    salut,
    tout dabord vraiment bravo et merci pour ton tuto Kayl ^^

    ensuite g un petit probleme (qui n'en est peut etre pas un), pour l'animation du cube, tu dis qu'il faut gerer la vitesse, sinon ca tourne trop vite, he bien sans que je ne fasse rien, ca tourne lentement oO. meme chose pour le processeur, a aucun moment il ne prend 100%. je vais pa m'en plaindre :p mais je voudrais comprendre pourquoi.

    mon code:
    #include "SDL/SDL.h"
    #include <GL/gl.h>
    #include <GL/glu.h>
    #include <stdlib.h>

    #define LARGEUR_ECRAN 1024
    #define HAUTEUR_ECRAN 768

    double anglex = 0;
    double anglez = 0;

    void Dessiner();

    int main(int argc, char *argv[])
    {
        SDL_Surface *ecran = NULL;
        SDL_Event event;
        bool quit = false;

        SDL_Init(SDL_INIT_VIDEO);
        ecran = SDL_SetVideoMode(LARGEUR_ECRAN,HAUTEUR_ECRAN,32,SDL_OPENGL);

        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        gluPerspective(70,(double)640/480,1,1000);
        glEnable(GL_DEPTH_TEST);

        Dessiner();

        for (;;)
        {
            while (SDL_PollEvent(&event))
            {

                switch(event.type)
                {
                    case SDL_QUIT:
                    exit(0);
                    break;
                }
            }

            anglez++;
            anglex++;

            Dessiner();
        }

        SDL_Quit();

        return EXIT_SUCCESS;
    }

    void Dessiner()
    {
        glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        glMatrixMode( GL_MODELVIEW );
        glLoadIdentity( );

        gluLookAt(3,4,2,0,0,0,0,0,1);

        glRotated(anglez,0,0,1);
        glRotated(anglex,1,0,0);

        glBegin(GL_QUADS);

            glColor3ub(255,0,0);
                glVertex3d(1,1,1);
                glVertex3d(1,1,-1);
                glVertex3d(-1,1,-1);
                glVertex3d(-1,1,1);

            .... autres faces ....

        glEnd();

        glFlush();
        SDL_GL_SwapBuffers();
    }



    autre question pour Kayl, est ce que tu compte expliquer plus en detail les matrices (GL_MODELVIEW,GL_PROJECTION,...), et la fonction glMatrixMode? parce que c un petit peu abstrait pour moi

    encore merci :)
    • Partager sur Facebook
    • Partager sur Twitter
    Ce qui ne nous tue pas, nous rend beaucoup moins mort - David TMX
      13 mai 2006 à 13:56:17

      Quelle est ta conf (proc + carte3D).

      Si ça ça va lentement, j'ai un peu peur pour toi :)

      Je note d'éclaircir peut être un peu donc le passage où je parles des 3.
      Sache cependant pour l'instant que celle qu'on utilise principalement est GL_MODELVIEW (qui affecte les objets).
      On utilise aussi un peu GL_PROJECTION quand on défini la perspective. (ou la projection orthogonale : cf grue).
      On verra un peu plus l'effet de GL_TEXTURE quand on ferra des textures animées.
      • Partager sur Facebook
      • Partager sur Twitter
        13 mai 2006 à 14:00:14

        merci pour ta reponse rapide :D
        mon proc est un intel p4 3.2GHz
        CG ATI 128Mo

        jdirai pas que ca va lentement en fait, mais plutot.. normal ^^. ce que je trouve le plus bizare c'est le fait que le prog ne consomme rien du proc
        • Partager sur Facebook
        • Partager sur Twitter
        Ce qui ne nous tue pas, nous rend beaucoup moins mort - David TMX
          13 mai 2006 à 14:04:47

          Ecran LCD ? Synchronisation verticale ?
          Essaye de calculer le FPS, s'il est bloqué à environ 60 tu as une synchronisation...
          • Partager sur Facebook
          • Partager sur Twitter
            13 mai 2006 à 14:10:07

            eu non j'ai pa un ecran LCD
            sync verticale? je c'est pas ce que c'est ^^
            comment faire pour calculer le FPS?
            • Partager sur Facebook
            • Partager sur Twitter
            Ce qui ne nous tue pas, nous rend beaucoup moins mort - David TMX
              13 mai 2006 à 14:12:08

              Si tu veux pas t'embeter regarde dans mon annexe : télécharge fraps, une fois fraps lancé (sans rien faire de spécial) lance ton appli, tu verras les FPS apparaitre sur ton écran en jaune).
              • Partager sur Facebook
              • Partager sur Twitter
                13 mai 2006 à 14:14:21

                ok merci beaucoup,
                si jai un FPS normal ca signifie quoi ??
                je doit quand meme gerer le fps dans mon code dans le cas ou le prog tournerai sur d'autres machines ?
                • Partager sur Facebook
                • Partager sur Twitter
                Ce qui ne nous tue pas, nous rend beaucoup moins mort - David TMX
                  13 mai 2006 à 14:19:30

                  ben deja modifie en tout cas le code pour que le mouvement gere le temps correctement.
                  Apres la limitation des FPS c'est optionnel hein.
                  Tu as combien alors ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 mai 2006 à 14:24:44

                    je peut pas tester la ^^ je ne suis pas chez moi (pas internet chez moi T_T)
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Ce qui ne nous tue pas, nous rend beaucoup moins mort - David TMX
                      14 mai 2006 à 13:53:19

                      me revoila !! :)
                      alors, sans limiter le fps ou koi ke ce soi, le fps est de 60

                      ensuite g tester en enlevan les fonctions de dessins (je napelle plus la fonction Dessiner()) et cette fois ci le prog consome 50% du proc

                      qu'est ce que ca signifie ? oO
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Ce qui ne nous tue pas, nous rend beaucoup moins mort - David TMX
                        14 mai 2006 à 14:33:06

                        Dis toi que ce qui consomme beaucoup, ce sont les calculs avec la matrice de projection: ils permettent à ton ordinateur de savoir ce que ta scène donne "à plat" sur ton écran, c'est du calcul matriciel (et vectoriel aussi je suppose), et c'est lourd. Si tu n'affiche plus rien, plaud 'interet d'effectuer ces calculs => le programme, comme il n'est pas bridé, va aussi vite qu'il peut => il fait des calculs moins complexes, mais en beaucoup plus grande quantité.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          14 mai 2006 à 14:51:06

                          ok merci
                          mais quand je remet les dessins du cube 3d, le prog consome cette fois 0% du proc, alor que kayl dis dans son tuto que le proc consomme 100% si on ne limite pa le fps, comment se fait il que cela fonctionne differemment pour moi ?
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Ce qui ne nous tue pas, nous rend beaucoup moins mort - David TMX
                            14 mai 2006 à 15:00:01

                            La seule explication que je vois : tu as quelque chose à l'exterieur qui limite TOUT seul (driver carte grapgique, application externe) les FPS.

                            Du coup si tu ne dessines rien, c'est une programme qui boucle normal, il prend 100% du temps.
                            Si tu dessines, alors ton controleur prend la main et limite le nombre de raffraichissement tout seul, donc mm resultat que de limiter les fps dans le programme.

                            Tu n'as rien de lancé qui fasse ça ? Tu as regardé tes options de cartes graphique ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              14 mai 2006 à 15:02:49

                              non g rien de lancer de particulier, tu surement raison, ca doit etre le pilote graphike.

                              en tout cas merci a tous pour vos reponses ^^
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Ce qui ne nous tue pas, nous rend beaucoup moins mort - David TMX
                                14 mai 2006 à 15:04:10

                                Quoi qu'il en soit, la limitation des FPS et le mouvement en fonction du temps sont deux choses totalement distinctes.
                                Lis donc bien la partie animation du chapitre enfin de la 3D pour voir comment faire des mouvements qui justement ne dépendent pas de la vitesse de l'ordi.

                                Amuse toi bien.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  14 mai 2006 à 17:12:12

                                  Moi c'est pareil ca tourne normalement... et pourtant g une bonne config :
                                  carte graphique : jen est deux GeForce6800 en SLI et mon proc c un P4 3.2 bi-coeur donc a pri-ori ca doit pas etre ca ^^
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  tuto open gl de Kayl

                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                  • Editeur
                                  • Markdown