IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Optimisation affichage 2D


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut Optimisation affichage 2D
    Bonjour,
    Je dois afficher en flux continu avec un fps de 24/25 voire plus, une serie d'images tga haute resolution 1900 * 1080

    J'aimerai optimiser ma routine d'affichage via OpenGL qui pour le moment est sous la forme et qui ne me donne pas des resultats probants en terme de rapidite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    glClear (GL_COLOR_BUFFER_BIT);
     
    glBegin(GL_POINTS);
      for (uint x = 0; x < im->getLargeur(); ++x)
      {
        for (uint y = 0; y < im->getHauteur(); ++y)
        {	
          uchar r, g , b;
          im->getPixel(x,y,r,g,b);
     
          glColor3ub(r,g,b);
          glVertex2i(x,y);
        }
      }
    glEnd();
     
    aglSwapBuffers(aglGetCurrentContext());
    n'etant pas expert en OpenGL, j'imagine qu'il y a mieux que de faire comme cela... enfin j'espere ?

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Je te rassure tout de suite : afficher les pixels un à un en rendu immédiat, c'est le pire que tu pourras faire.

    Une meilleure solution serait de mettre à jour une texture dynamique puis de l'afficher sur un carré recouvrant l'écran. Avec les PBO, si ton GPU les supporte, ça peut être suffisamment rapide.

  3. #3
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    L'idee de la texture est bien. En terme de précision il n'y aura pas de dégradation ou d'interpolation ?

    Tu me conseilles aussi de faire de la programmation au niveau carte graphique si je comprend bien ? J'ai très peu d'expérience en la matière.
    Qu'est ce qui doit être fait au niveau gpu, le calcul de la texture elle même ou simplement l'application de la texture ?

    Etant donné que mon appli doit être portable sur plusieurs machines je dois d'abord tester si la machine supporte la prog sur carte et prevoir une issue de secours.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    En terme de précision il n'y aura pas de dégradation ou d'interpolation ?
    Dégradation : pas si tu utilises le bon format de pixel (RGB 32 bits j'imagine)
    Interpolation : pas si tu désactives le filtrage de texture

    Tu me conseilles aussi de faire de la programmation au niveau carte graphique si je comprend bien ? J'ai très peu d'expérience en la matière.
    Qu'est ce qui doit être fait au niveau gpu, le calcul de la texture elle même ou simplement l'application de la texture ?
    Le remplissage de la texture sera de tout façon fait par le CPU, après tu peux utiliser des extensions comme les PBO pour accélérer le transfert vers la carte graphique.

    Etant donné que mon appli doit être portable sur plusieurs machines je dois d'abord tester si la machine supporte la prog sur carte et prevoir une issue de secours.
    Ce qui risque de poser problème, hormis les PBO, c'est la taille de texture qui est assez élevée. Au pire tu peux découper en plusieurs sous-textures.

  5. #5
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    C'est vrai, surtout que les images sont HD...

    ok je vais deja tester en appliquant une texture avec cpu.

    merci bien. A+

  6. #6
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Dis moi, je lis la doc OpenGL sur glTexImage2D et je vois ça :

    width Specifies the width of the texture image.
    Must be 2n+2(border) for some intege n. All
    implementations support texture images that
    are at least 64 texels wide.

    height Specifies the height of the texture image.
    Must be 2m+2(border) for some integer m. All
    implementations support texture images that
    are at least 64 texels high.

    Tous les exemples que je trouve sont pour des textures carrées et de largeur 2^x. Alors je me pose la question est il possible d'appliquer une texture 300*300 par exemple ?

Discussions similaires

  1. [Oracle] Optimiser affichage dans une table
    Par evil_mouss dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/07/2009, 18h49
  2. [VS2005] Optimisation affichage d'un formulaire
    Par belfaigore dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/07/2009, 15h33
  3. Optimiser affichage requete
    Par Shivas dans le forum Langage SQL
    Réponses: 5
    Dernier message: 03/05/2008, 11h15
  4. [MySQL] optimisation affichage du résultat d'un select
    Par guiguimouk dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/04/2008, 10h26
  5. JLayeredPane : optimiser affichage
    Par Yannick_from_31 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 20/06/2007, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo