Une fois qu'un programme est écrit, il peut souvent prendre autant de temps pour optimiser les fichiers de code et des données comme il l'a fait pour écrire le code en premier lieu. Cela est particulièrement vrai lorsque l'on tente d'améliorer les performances OpenGL De nombreux facteurs peuvent affecter la performance, de la taille et le format des fichiers de texture de la quantité de géométrie dans une scène, les options de rendu utilisés pendant la rastérisation. En fait, l'ajout de code peut faire un programme plus rapide si ce code a pour but de détecter et d'éviter les fonctions spéciales qui ne sont pas pris en charge par une carte graphique. Bonnes pratiques de programmation et une compréhension commune de l'OpenGL goulots d'étranglement peuvent aller un long chemin vers l'amélioration de la vitesse et la qualité d'une application OpenGL .
Un domaine dans lequel de grandes améliorations à la performance OpenGL peuvent être acquise soit dans les structures de données de l'application elle-même. OpenGL scènes et des animations nécessitent généralement une grande quantité d'arbres de données, structures de données et des tableaux. Structures employant des conteneurs et algorithmes de recherche qui utilisent le moins de temps possible tout en répondant aux besoins de l'application peut accélérer la rapidité avec laquelle les données sont traitées et a déménagé à l'unité de traitement graphique (GPU) pour l'affichage. Comprendre comment OpenGL , les données doivent être formatées peuvent également aider, car certaines optimisations de compilation peut se produire en fonction de la langue utilisée.
Fichiers de texture sont un espace commun dans lequel OpenGL performances peuvent être améliorées. Ces fichiers d'image doivent avoir les dimensions en pixels qui sont seules puissances de deux, même si le matériel ne l'exige pas. Ils devraient également être optimisés à l'intérieur d'un éditeur d'image soit aussi faible que possible. En général, les objets animés ou mobile n'avez pas besoin de textures qui sont aussi détaillés que les objets qui restent encore. En utilisant les plus petites textures possibles sans sacrifier trop de qualité peut considérablement augmenter la cadence.
Un piège courant, en particulier pour les nouveaux programmeurs ou des artistes, consiste à utiliser la géométrie trop. Il y a un certain nombre de trucs qui peuvent aider à réduire le nombre de polygones dans un modèle sans perdre en précision. Une erreur souvent commise consiste à utiliser la géométrie d'un modèle pour représenter des détails qui peuvent plus efficacement être affichées dans une image de texture. La plupart des modèles sont en fait très simple, et les caractéristiques complexes sont réellement mises en œuvre à l'aide bump maps, normales et mappage de texture. Simplifié, modèles optimisés augmentera OpenGL les performances en réduisant le nombre de calculs qui doivent être effectués sur chaque sommet.
Pour certaines applications, il peut être avantageux de programme pour le plus petit dénominateur commun quand il s'agit de matériel. Certaines cartes graphiques haut de gamme en œuvre OpenGL caractéristiques qui sont incroyablement excitant, mais pas pris en charge par la plupart des autres cartes. En utilisant quelques extensions et en s'appuyant sur l'accélération matérielle uniquement pour des tâches de base, OpenGL performances peuvent être améliorées dans presque tous les systèmes, la prévention des situations dans lesquelles une certaine ligne de cartes graphiques sont incapables de parvenir à une cadence acceptable.
Le logiciel de profilage est également très important lorsque l'on tente d'améliorer les performances OpenGL . Un profileur de mesurer combien de temps il faut pour exécuter chaque ligne de code, chaque fonction et chaque opération dans un programme. Ce peut être un moyen extrêmement efficace pour identifier l'emplacement un goulot d'étranglement.
Si une certaine fonction prend plus de temps que d'autres, alors il peut être la cible d'optimisation. Cela peut parfois conduire à de vastes réécrit de certains segments de code, mais, en fin de compte, il peut créer un programme qui fonctionne aussi bien que possible.