Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ces pratiques de programmation optimisent les performances de votre application :
Utilisez glColorMaterial lorsqu’une seule propriété matérielle est rapidement variée (à chaque sommet, par exemple). Utilisez glMaterial pour les modifications peu fréquentes, ou lorsque plusieurs propriétés matérielles sont variées rapidement.
Utilisez glLoadIdentity pour initialiser une matrice, plutôt que de charger votre propre copie de la matrice d’identité.
Utilisez des appels de matrice spécifiques tels que glRotate, glTranslateet glScale, plutôt que de composer vos propres matrices de rotation, de traduction et d’échelle et d’appeler glMultMatrix.
Utilisez glPushAttrib et glPopAttrib pour enregistrer et restaurer les valeurs d’état. Utilisez les fonctions de requête uniquement lorsque votre application requiert les valeurs d’état pour ses propres calculs.
Utilisez des listes d’affichage pour encapsuler des modifications d’état potentiellement gourmandes en mémoire. Par exemple, placez tous les appels glTexImage requis pour spécifier complètement une texture (et peut-être les appels glTexParameter, glPixelStore, et glPixelTransfer également) dans une liste d’affichage unique. Appelez cette liste d’affichage pour sélectionner la texture.
Utilisez des listes d’affichage pour encapsuler les appels de rendu d’objets rigides qui seront dessinés à plusieurs reprises.
Pour réduire la bande passante réseau dans les environnements client/serveur, utilisez des évaluateurs même pour des pavages de surface simples.
Si possible, pour éviter la surcharge de GL_NORMALIZE, fournissez des normales de longueur unitaire. Étant donné que glScale nécessite presque toujours d’activer GL_NORMALIZE, évitez d’utiliser glScale lors de l’éclairage.
Si l’ombrage lisse n’est pas nécessaire, définissez glShadeModel sur GL_FLAT.
Utilisez un seul glClear appel par image, si possible. N’utilisez pas glClear pour effacer les petites sous-régions des tampons ; utilisez-le uniquement pour effacer complètement ou presque complètement la mémoire tampon.
Pour dessiner plusieurs triangles indépendants, utilisez un seul appel plutôt que plusieurs appels pour glBegin (GL_TRIANGLES) ou un appel à glBegin (GL_POLYGON). De la même façon:
Pour dessiner un triangle unique, utilisez GL_TRIANGLES plutôt que GL_POLYGON.
Utilisez un seul appel pour glBegin (GL_QUADS) au lieu d’appeler glBegin ( GL_POLYGON ) à plusieurs reprises.
Utilisez un seul appel pour glBegin (GL_LINES) pour dessiner plusieurs segments de ligne indépendants, plutôt que d’appeler glBegin (GL_LINES) plusieurs fois.
En général, utilisez les formes vectorielles de commandes pour passer des données précomputées et utilisez les formes scalaires de commandes pour passer des valeurs calculées près de l’heure d’appel.
Évitez d’apporter des modifications en mode redondant, telles que la définition de la couleur sur la même valeur entre chaque sommet d’un polygone à nuances plates.
Lors du dessin ou de la copie d’images, désactivez la rastérisation et les opérations par fragment pour optimiser les ressources. OpenGL peut appliquer des textures aux images de pixels.