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 :

Opengl en mode software ?!


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 45
    Par défaut Opengl en mode software ?!
    Bonjour ,

    J'ai commencé par utiliser PyOpenGL (python) , mais lorsque je dessinais des choses , la carte graphique n'était pas sollicitée.

    En C++ , j'ai le même problème. J'ai essayé opengl avec un fenêtrage SDL , puis Opengl seul avec GLUT , rien à faire.

    Lorsque j'exécute un exemple (que j'ai compilé ), la carte graphique est utilisée . Dès que j'essaie de transposer l'exemple à mon programme ( qui contient des objets) , le rendu se fait en software , c'est lent. Évidement , j'ai regardé 20 000 fois si j'avais bien repris la structure générale de l'exemple. Je ne vois pas ce qui change , à part les fonctions d'affichage qui sont reparties dans des classes et qui sont un peu plus compliquées.

    Il doit y avoir quelque chose de fondamental dans l'utilisation d'OpenGL que je ne sais pas , mais quoi ?


    Sinon , j'aurais une autre question : Comment afficher une image à partir d'un bmp (en hardware bien sur)? Il y a beaucoup de tutoriels sur le net , mais chacun font appel à des bibliothèques différentes (parfois impossibles à trouver) et au final j'arrive à en faire aucun.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 30
    Par défaut
    Bonjour,

    Je n'ai utilisé qu'OpenGL avec GLUT, mais il est très facile d'avoir un affichage lent si tu n'as pas activé certaines choses comme par exemple le double buffer.

    Peux-tu mettre un exemple de ton code ?

    Sinon pour afficher une image avec OpenGL, penches-toi sur les textures.
    Voici un lien avec un tutoriel qui créé une texture à partir d'un BMP.

    Le site de NEHE est excellent pour apprendre l'OpenGL.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 45
    Par défaut
    J'ai précisé que j'utilise un code qui marche à la base . je ne fais presque que recopier ce code en le "dispersant" un peu dans mes objets.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 45
    Par défaut
    L'activité de la carte graphique est inversement proportionnelle au nombre d'elements à afficher. L'acte d'affichage consiste à parcourir une table et afficher tout les éléments qui peuvent l'être. Serait-ce le processeur qui ralenti la CG ? J'en doute , vu la faible complexité de l'algorithme d'affichage.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 30
    Par défaut
    Citation Envoyé par ickylevel Voir le message
    J'ai précisé que j'utilise un code qui marche à la base . je ne fais presque que recopier ce code en le "dispersant" un peu dans mes objets.
    Si le code de base (que tu arrives à compiler) est rapide sur la même machine et que tu ne fais que "disperser" du code dans tes objets alors c'est tes objets qui ralentissent le tout ou la manière de les utiliser.

    Bien entendu, il peut y avoir plusieurs raisons pour que ça rame, et sans savoir ce que tu as "disperser", ce n'est pas évident.

    Est-ce que l'exemple que tu as récupéré est un exemple de base, une grosse scène, est-ce que ça utilise des lumières ? Il y a beaucoup de paramètres à prendre en compte malheureusement.

    La première chose à faire à mon avis est de vérifier que le calcul de la logique du jeu et l'affichage de la scène soit bien séparés. Dans certains exemples sur internet, on voit souvent ce genre de défaut, mais bien sûr c'est fait exprès pour simplifier le code et ne pas brouiller le débutant en OpenGL. Dans la fonction d'affichage, il faut essayer de faire le strict minimum c'est à dire pratiquement que ce qui concerne l'affichage et non pas par exemple le déplacement d'un objet. Ce déplacement se fait dans une autre fonction qui est appellée périodiquement par openGL. Une autre chose à éviter est la création d'objet dans la fonction d'affichage (ce qui implique ensuite la destruction à la sortie bien sûr).

    Bon courage

  6. #6
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    tu compile sous quoi ? si c'est sous Linux en utilisant MESA, il est possible que tu ait compilé le tout en mode software... dans ce cas la, regarde au niveau des options de compilation...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 45
    Par défaut
    Voila , là je tiens un exemple déroutant :

    Voici un extrait d'un code :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    for (int h = 0 ; h< 200;h++) {
     
        glBegin(GL_QUADS);
        glTexCoord2i(0,1);
        glVertex3f(100 ,100,0);
        glColor3f(0.0f,1.0f,0.0f);
        glTexCoord2i(1,1);
        glVertex3f(100+40 ,100,0);
        glTexCoord2i(1,0);
        glColor3f(1.0f,0.0f,0.0f);
        glVertex3f(100+40 ,100+40,0);
        glTexCoord2i(0,0);
        glVertex3f(100 ,100+40 ,0);
        glEnd();
     
        glBegin(GL_QUADS);
        glTexCoord2i(0,1);
        glVertex3f(200 ,200,0);
        glColor3f(0.0f,1.0f,0.0f);
        glTexCoord2i(1,1);
        glVertex3f(200+40 ,200,0);
        glTexCoord2i(1,0);
        glColor3f(1.0f,0.0f,0.0f);
        glVertex3f(200+40 ,200+40,0);
        glTexCoord2i(0,0);
        glVertex3f(200 ,200+40 ,0);
        glEnd();}
    Selon le nombre d'itérations , la carte graphique est plus ou moins utilisée.
    Plus la valeur limite de h est grande , moins la carte graphique est utilisée. Je suppose que j'utilise mal opengl. Dans ce cas comment dessiner beaucoup d'objets sans ralentir ?

    Je suis sous windows.

Discussions similaires

  1. Unofficial OpenGL Software Development Kit
    Par forum dans le forum Contribuez
    Réponses: 0
    Dernier message: 07/10/2013, 17h36
  2. Mode software meilleur qu'en hardware
    Par ash.ice.loky dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 31/03/2012, 19h45
  3. Réponses: 4
    Dernier message: 25/11/2010, 16h09
  4. Réponses: 0
    Dernier message: 09/11/2010, 20h54
  5. C borland en mode console et OPENGL
    Par Asmod_D dans le forum OpenGL
    Réponses: 4
    Dernier message: 02/09/2004, 16h14

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