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 :

Développpement d'une application de simulation .....


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2
    Par défaut Développpement d'une application de simulation .....
    J'aimerais réaliser une vue (type simulateur de vol) composée de :

    - un terrain représenté par des facettes lues dans un fichier
    - une cible mouvante (avion, hélicoptère) dont la géométrie est lue dans un fichier aussi.
    - Cette vue est prise de l'intérieur d'un autre engin (avion par exemple)

    L'avion dans lequel on se trouve bouge, la cible bouge aussi mais le terrain est forcément fixe.

    J'ai réalisé tout ça mais j'ai de gros problèmes de lenteur. Je redessine systématiquement toutes les facettes.

    Mes questions sont les suivantes :

    Est-ce la bonne solution ?
    Comment faire pour optimiser mon affichage ?

    Merci d'avance de vos réponses.


    PS : je bosse sur station SGI (IRIX)

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 55
    Par défaut
    Je pense que c'est l'affichage du terrain qui pose des problèmes de perfs. Tu as combien de polys en gros ?

    Pour l'affichage de ce genre de décor (terrain en extérieur, avec peu ou pas de relief), la méthode la plus efficace à mon avis est le CLOD : Continuous Level Of Detail.

    Le principe est simple : les parties du terrain qui sont loin de la cam n'ont pas besoin d'être détaillé... pas besoin d'afficher tous les polys si chaque poly ne fait que quatre pixels ! Donc la méthode consiste à "approximer" les parties du terrain qui sont loin de la caméra. Bien sûr, à chaque frame, va falloir analyser la position de la cam pour savoir quel niveau de détail attribuer à telle ou telle partie du terrain... Il y a plein d'algos pour ça, un petit coup de devrait t'aider

    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2
    Par défaut polygones
    Merci pour ta réponse.

    Voici quelques détails:
    - j'ai en gros plusieurs milliers de polygones voir plusieurs dizaines de milliers.

    - Les polygones peuvent avoir 3, 4, 5 ou plus de sommets, on ne peut pas préjuger avant la lecture du fichier.

    Merci d'avance

    A+

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 55
    Par défaut
    Bon alors déjà : est-tu absolument sûr que tu as besoin d'autant de polys ? Essaie de voir si ta modélisation est optimisée à ce niveau là...

    Sinon autre chose : tes polys n'étant pas tous de simples triangles, montre moi ton code d'affichage d'un poly. Ca peut jouer énormément sur les perfs vu le nombre de polys !

    J'imagine que la morphologie de ton terrain ne change pas au cours du temps. Pense donc à le mettre en display list... Attention : si tu utilise le CLOD (je continue de croire que c la meilleure solution) l'utilisation des display lists est un peu moins triviale, mais reste à mon avis très utile. Il faut juste faire preuve d'un peu d'astuce je pense...

    Bon courage !

  5. #5
    mat.M
    Invité(e)
    Par défaut Re: polygones
    Citation Envoyé par dada5455
    - Les polygones peuvent avoir 3, 4, 5 ou plus de sommets, on ne peut pas préjuger avant la lecture du fichier.
    Fichtre !
    Comme le suggère Patapetz ça risque de pédaler !
    Mieux vaut faire des approximations comme il suggère sinon utiliser des listes de triangles.
    quel intérêt d'avoir 5 sommets ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 8
    Par défaut
    bas y a 9 chance sur 10 que ça vienne de tes "3,4,5 ou plus" au niveau du nombre de sommet par poly.
    c'est vraiment pas bon car tu coup ton affichage resemble surement a un truc du genre (carricatural mais certainement pas loin de la realite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for(int i=0;i<nbpoly;i++)
    {
    switch(type)
    {
       case(3):glBegin(Gltriangle);......glEnd();
       case(4):glBegin(GlQuad);......glEnd();
       case(5):glBegin(Glpoly);......glEnd();
    }
    }
    et donc tu te retrouver avec enormement de glBegin glEnd dans ton code et ça c'est la meuilleur maniere de ralentire un code.

    Donc soit tu affiche tes poly par type: en 1er tous les poly a 3 sommet apres ceux a 4 ....
    Ou encore mieu tu commence par passe tes poly tous en triangle (a l'ouverture de la scene) et ensuite tu fait un affichage avec que des triangle.
    bien sur, la derniere methode est la plus rapide.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 8
    Par défaut
    bas y a 9 chance sur 10 que ça vienne de tes "3,4,5 ou plus" au niveau du nombre de sommet par poly.
    c'est vraiment pas bon car tu coup ton affichage resemble surement a un truc du genre (carricatural mais certainement pas loin de la realite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for(int i=0;i<nbpoly;i++)
    {
    switch(type)
    {
       case(3):glBegin(Gltriangle);......glEnd();
       case(4):glBegin(GlQuad);......glEnd();
       case(5):glBegin(Glpoly);......glEnd();
    }
    }
    et donc tu te retrouver avec enormement de glBegin glEnd dans ton code et ça c'est la meuilleur maniere de ralentire un code.

    Donc soit tu affiche tes poly par type: en 1er tous les poly a 3 sommet apres ceux a 4 ....
    Ou encore mieu tu commence par passe tes poly tous en triangle (a l'ouverture de la scene) et ensuite tu fait un affichage avec que des triangle.
    bien sur, la derniere methode est la plus rapide.

Discussions similaires

  1. Exemple d'une application de simulation
    Par barokhe dans le forum AWT/Swing
    Réponses: 0
    Dernier message: 18/10/2014, 18h55
  2. Réponses: 1
    Dernier message: 24/02/2014, 12h37
  3. concevoir une application de simulation avec matlab
    Par narr255 dans le forum MATLAB
    Réponses: 1
    Dernier message: 05/12/2010, 13h05
  4. Recherche une application qui simule un parcours sur une carte
    Par globix dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 28/12/2009, 18h03
  5. Simulation de style MDI dans une application SDI
    Par Djob dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/11/2005, 13h07

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