Bonsoir,
Je viens vers vous car j'ai besoin d'une aide pour optimiser un tracé d'algorithme en openGL de lignes.
Je travaille sur un logiciel d'astronomie en mode fisheye et je dois tracer les contours des constellations (ci dessous tout est en blanc)
Je suis passé du logiciel avec des primitives en opengl2 à des primitives en opengl4
Mon travail a pour but d'améliorer l'algorithme suivant:
algo 1 :
POUR chacune des 88 constellations:
- sélectionne le shader
- sélectionne/calcule les points --−> un vector de taille variable transmis avec un glbufferData
- sélectionne/calcule la couleur --> un simple vecteur de 3 floats transmis avec un uniform
- glDrawArray
- gluseProgram(0)
FIN_POUR
Je suis arrivé à ceci:
algo 2 :
sélectionne le shader
POUR chacune des 88 constellations:
- sélectionne/calcule les points --−> un vector de taille variable transmis avec un glbufferData
- sélectionne/calcule la couleur --> un simple vecteur de 3 floats transmis avec un uniform
- glDrawArray
FIN_POUR
- gluseProgram(0)
Ce changement d'algorithme m'a permis de diviser le temps d'exécution par 2
Mais je souhaiterai faire encore mieux en créant l'algorithme 3 :
algo 3 :
sélectionne le shader
POUR chacune des 88 constellations:
- sélectionne/calcule les points --−> un vector de taille variable transmis avec un glbufferData
- sélectionne/calcule la couleur --> un simple vecteur de 3 floats transmis avec un ???????? <--------------comment transmettre à la CG cette information ?
FIN_POUR
- glDrawArray( tout en un quoi !)
- gluseProgram(0)
sauf que pour l'algo 3, je ne sais pas comment passer ce vecteur de 3 floats qui reste constant pour chaque calcul de point.
Je veux dire que les données sont de cette forme:
Constellation1
- vector<24 floats> [12 points]
- couleur <3 floats> [1 couleur]
Constellation2
- vector<328 floats> [164 points]
- couleur <3 floats> [1 couleur]
Constellation3
- vector<100 floats> [50 points]
- couleur <3 floats> [1 couleur]
...
Constellation88
- vector<46 floats> [23 points]
- couleur <3 floats> [1 couleur]
Je suis bloqué sur mon travail car je ne sais pas comment dire au shader que la couleur est la même pour le paquet de données de taille variable.
Merci beaucoup de m'aider !
Partager