Qu'est-ce qu'une sphère OpenGL®?
Une sphère Open Graphics Library® (OpenGL®), au niveau le plus élémentaire, est un objet tridimensionnel (3D) constitué d'une série de triangles ou de quadrilatères dont les sommets sont tous équidistants d'un point central. Cela signifie que, lorsqu'une sphère OpenGL® est vue sous n'importe quel angle, le contour apparaît comme un cercle parfait pour le spectateur, bien que l'éclairage et l'ombrage puissent donner au volume une apparence plus sphérique. Le nombre de sommets utilisés pour créer une sphère OpenGL® détermine la régularité de l'objet dans son approximation d'une sphère réelle, un nombre inférieur à 12 points créant un objet qui ne peut pas être considéré comme une sphère. Même si une sphère est considérée comme une primitive de forme dans de nombreuses applications graphiques et bibliothèques, OpenGL® ne possède aucune fonctionnalité innée pour restituer une sphère, ce qui signifie que des outils supplémentaires tels que le logiciel OpenGL® Utility Toolkit (GLUT) doivent être utilisés pour éviter l'écriture de code. générer manuellement la forme.
Lorsque vous travaillez avec des sommets dans OpenGL®, la quantité minimale de points pouvant être utilisée pour générer une sphère avec un certain degré de lissage est de 12, créant un objet avec 20 faces triangulaires appelé icosahèdre. Sans traitement supplémentaire, une sphère OpenGL® construite de cette manière aura des angles vifs visibles autour des bords, ce qui pourrait être acceptable pour certaines applications. Pour obtenir une sphère plus arrondie, chaque visage doit être subdivisé.
La subdivision d'un icosaèdre pour augmenter le nombre de sommets qu'il contient et former une sphère OpenGL® plus lisse implique la création de nouveaux sommets au centre de chaque bord de chaque triangle existant. Cela signifie que chaque face triangulaire contiendra désormais quatre triangles. La subdivision peut continuer autant que nécessaire, bien que l'ajout de points de manière exponentielle puisse rapidement créer un objet dont le temps de rendu est élevé et dont la traduction peut devenir difficile à manier.
Malgré certaines commodités mathématiques qu'une sphère OpenGL® fournit aux programmeurs, telles que les normales de surface qui peuvent être facilement calculées à partir des coordonnées de sommet, la texturation d'une sphère peut présenter certaines complexités. L'utilisation d'une texture bidimensionnelle standard (2D) projetée sur la sphère signifie que les zones supérieure et inférieure de l'image de texture seront compressées, car la forme des triangles situés près des pôles de la sphère est compressée. Pour résoudre ce problème, un mappage de cube peut être utilisé ou le programmeur peut générer les coordonnées de texture manuellement pour l'objet.
Un facteur doit être noté concernant l’utilisation d’une bibliothèque d’utilitaires pour générer une sphère OpenGL®. Une sphère générée par GLUT ou des kits d'outils similaires peut parfois être difficile à modifier, à optimiser et à gérer au sein d'OpenGL® même. Pour cette raison, il est parfois avantageux d’utiliser un code écrit personnalisé pour générer une sphère OpenGL® afin qu’il soit créé et puisse être utilisé de la manière la plus efficace possible dans le programme.