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 :

Performance étrange en utilisant une classe c++ pour dessiner un objet


Sujet :

OpenGL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Performance étrange en utilisant une classe c++ pour dessiner un objet
    Hello,

    Le titre est peut-être pas très clair, je m'explique. J'utilise le code de base de NeHe.
    J'ai un objet ligne de classe RandomLine avec une fonction draw() que j'appelle dans ma boucle principale DrawGLScene(GLvoid) (avec ligne->draw() )

    fonction draw() de la classe (c'est une spirale déformée) :
    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
     
    temps = temps + 1 ;
     
    float sample = 0;
     
    float x,y;
    float ang;
     
    float time = temps/20.0;
     
    glColor3f(1.0,1.0,1.0);
     
    glBegin(GL_LINE_STRIP);
     
    for (int i = 0; i<100; i++)
     
    	{
    		sample = sample+0.01;
     
    	x = 3.14*0.1*sample*cos(2*6.28*sample+2*time);
    	y = 3.14*0.1*sample*sin(6.28*sample+time);
     
    	glVertex2f(x,y);
    	}
     
    glEnd();
    Là je dois avoir 1 image toutes les 2s ???!!!

    par contre, si à la place de
    float time = temps/20.0;
    je mets
    int time = temps;
    puis que je remplace time par time/20.0 dans mon calcul de x et y, là c'est normalement fluide...

    Enfin, si je laisse tomber la classe et que je mets directement dans DrawGLScene(GLvoid) ce qui était dans ma fonction draw(), là les deux solutions donnent un framerate normal...

    Voilà, donc j'y comprends vraiment rien, c'est peut-être plus un problème de c++ que d'open gl, mais si qqn a une explication, je lui serai très reconnaissant avant que je me lance dans un moteur 3d complètement déficient.

  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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu n'aurais pas plusieurs variables qui portent le même nom par hasard ? Du genre un time membre de ta classe, ou quelque chose comme ça.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    en nettoyant le code pour le poster, j'ai vu que j'avais pas initialisé la variable temps dans la classe...
    Trop de copier/coller
    Merci d'avoir répondu ça m'a permis de corriger.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation d'une classe connexion pour MySQL
    Par nolookpass8 dans le forum Développement Web en Java
    Réponses: 7
    Dernier message: 02/04/2013, 17h42
  2. Réponses: 4
    Dernier message: 22/02/2010, 15h47
  3. Réponses: 1
    Dernier message: 26/08/2008, 12h27
  4. Réponses: 9
    Dernier message: 25/06/2008, 16h42
  5. utiliser une classe pour gerer les signaux
    Par TrueBeliever dans le forum Qt
    Réponses: 2
    Dernier message: 21/12/2006, 17h57

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