Partage
  • Partager sur Facebook
  • Partager sur Twitter

SDL/OpenGl

image flou

Sujet résolu
    1 avril 2008 à 0:23:41

    Bonjour, j'utilise openGL pour un jeu seulement, lorsque je charge une image, celle-ci est bcp plus floue que l'original. (ne pas faire à la petite symétrie)
    bon je vous montre les 2 images :
    original :Image utilisateur
    et celle du programme :
    Image utilisateur
    je montre comment je charge les images :
    1. SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
    2.     // activation de l'affichage SDL en mode fenetre
    3.     SDL_Surface* pScreen = SDL_SetVideoMode(800, 600, 32, SDL_OPENGL );
    4. .........
    5. //plein de code
    6. GLuint texture1 = loadTexture("text.jpg");
    7. //plein de code
    8. glBindTexture(GL_TEXTURE_2D, texture1);
    9.     glBegin(GL_QUADS);
    10.     glTexCoord2d(0,1);  glVertex2d(1,1);
    11.     glTexCoord2d(0,0);  glVertex2d(1,-1);
    12.     glTexCoord2d(1,0); glVertex2d(-1,-1);
    13.     glTexCoord2d(1,1);  glVertex2d(-1,1);
    14.     glEnd();
    15.         glFlush();
    16.         SDL_GL_SwapBuffers();

    si vous pouviez m'aider, ça m'aiderait beaucoup
    merci
    mwaxou
    • Partager sur Facebook
    • Partager sur Twitter
      1 avril 2008 à 0:36:28

      Cela ne viendrait-il pas d'une différence de résolution entre ton image source et la surface de dessin ?
      Mettons une image source de 1280x1024 à dessiner dans 800x600... ?

      Enfin, c'est juste une idée comme ça.
      • Partager sur Facebook
      • Partager sur Twitter
        1 avril 2008 à 8:16:06

        Non, l'image source a une résolution identique à celle de la fenêtre.
        • Partager sur Facebook
        • Partager sur Twitter
          1 avril 2008 à 9:39:15

          Bonjour,
          lequel tu utilises, glTexImage2D ou gluBuild2DMipmaps ?
          • Partager sur Facebook
          • Partager sur Twitter
            1 avril 2008 à 9:42:04

            tu dois avoir les effets de lisages activés. montre nous comment tu charges ta texture, la fonction qui la charge, ainsi que les gltexparameter
            • Partager sur Facebook
            • Partager sur Twitter

            Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

              1 avril 2008 à 11:17:16

              Je ne suis pas chez moi donc je post le code "de tête":
              1. #include <stdlib.h>
              2. #include <iostream>
              3. #include <SDL/SDL.h>
              4. #include <GLUT/glut.h>
              5. #include "sdlglutils.h"
              6. int main(int argc, char *argv[])
              7. {
              8.     SDL_Init(SDL_INIT_VIDEO);
              9.     SDL_WM_SetCaption("Code bugé",NULL);
              10. SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
              11.     SDL_SetVideoMode(800,600, 32, SDL_OPENGL);
              12.     bool continuer = true;
              13.     SDL_Event event;
              14.         GLuint texture1= loadTexture("text.jpg",true);
              15.         glBindTexture(GL_TEXTURE_2D, texture1);
              16.         glEnable(GL_TEXTURE_2D);
              17.     while (continuer)
              18.     {
              19.         SDL_WaitEvent(&event);
              20.         switch(event.type)
              21.         {
              22.             case SDL_QUIT:
              23.                 continuer = false;
              24.         }
              25.          glClear(GL_COLOR_BUFFER_BIT);
              26.        glBindTexture(GL_TEXTURE_2D, texture1);
              27.           glBegin(GL_QUADS);
              28.           glTexCoord2d(0,1);  glVertex2d(-1,1);
              29.           glTexCoord2d(0,0);  glVertex2d(-1,-1);
              30.           glTexCoord2d(1,0); glVertex2d(1,-1);
              31.          glTexCoord2d(1,1);  glVertex2d(1,1);
              32.         glEnd();
              33.         glFlush();
              34.         SDL_GL_SwapBuffers();
              35.     }
              36.     SDL_Quit();
              37.     return 0;
              38. }


              Pour ce qui est de sdlglutils.h il s'agit du fichier proposé par M@teo21 sur sont tuto sur openGL.
              merci,
              Mwaxou
              • Partager sur Facebook
              • Partager sur Twitter
                1 avril 2008 à 11:24:34

                Essaye en remplacant
                1. loadTexture("text.jpg",true);

                par
                1. loadTexture("text.jpg",false);


                Pour avoir une image net, il faut mieux désactiver le mipmapping automatique généré par gluBuild2DMipmaps.
                • Partager sur Facebook
                • Partager sur Twitter
                  1 avril 2008 à 11:29:18

                  j'essairai donc ça ce tout à l'heure (je ne suis toujours pas chez moi :p)
                  merci,
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 avril 2008 à 23:19:26

                    Il faut modifier un peu le code fournit par Kayl pour le chargement de texture et changer les GL_LINEAR par GL_NEAREST.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 avril 2008 à 17:37:32

                      excusez moi d'avoir mis aussi longtemps..
                      en fait l'exmplication de MickaGL marche
                      merci,
                      mwaxou
                      • Partager sur Facebook
                      • Partager sur Twitter

                      SDL/OpenGl

                      × 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