Bonjour a tous,
Je suis vraiment débutante avec OpenGL, dons je vous demanderais de ne pas lésiner sur les explications ,et de pardonner mes maladresses.
Voici mon soucis : je dois reprendre un projet en C++ d'un logiciel de CAO 2D, débuté par mon prédécesseur. Et lorsque beaucoup d’éléments sont affichés, je peut descendre jusqu’à 1 FPS, ce qui est assez problématique. Mon logiciel doit permettre d'ouvrir des fichiers de plusieurs millions d’élément et là mon programme à déjà des soucis avec plusieurs milliers d’éléments.
Je ne sais vraiment pas comment optimiser la chose.
Quelques précisions a savoir je doit pouvoir effectuer des zooms et des dé zoom sur des éléments qui ont une épaisseur donné (par exemple une ligne d'une épaisseur de 2 mm). Afin de pallier au cas d'un dé-zoom important mon prédécesseur avait mis en place un système de double affichage :
- en ligne afin que même éloigné les éléments et toujours une épaisseur minimum
- en QUAD afin que de près l'épaisseur soit la vrai épaisseur attribué à l'élément
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 glLineWidth(2.0f); glBegin(GL_LINES); ... ensemble de glVertex3d(...) glEnd();
Ce système peut peut être alourdir l'affichage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 glBegin(QUAD); ... ensemble de glVertex3d(...) glEnd();
ensuite j'ai lu que l'utilisation des glVertex3d n'est pas forcement optimal.
Pourriez vous m'indiquer des façons d'optimiser l'affichage de mes éléments? Comme précisé au dessus je suis débutante avec les API graphiques donc n'hésitez pas à m'expliquer les choses qui vous paraissent évidente.
Merci d'avance pour votre aide. Et si besoin d'explication supplémentaire n'hésitez pas à demander.
Partager