¿Qué es una esfera OpenGL®?
Una esfera de Open Graphics Library® (OpenGL®), en el nivel más básico, es un objeto tridimensional (3D) compuesto por una serie de triángulos o cuadriláteros cuyos vértices son todos equidistantes de un punto central. Esto significa que, cuando se ve una esfera OpenGL® desde cualquier ángulo, el contorno aparece como un círculo perfecto para el espectador, aunque la iluminación y el sombreado pueden dar al volumen una apariencia más similar a una bola. El número de vértices utilizados para crear una esfera OpenGL® determina la suavidad del objeto en su aproximación a una esfera real, con menos de 12 puntos creando un objeto que no puede considerarse una esfera. A pesar de que una esfera se considera una forma primitiva en muchas aplicaciones gráficas y bibliotecas, OpenGL® no tiene ninguna funcionalidad innata para representar una esfera, lo que significa que se necesitan kits de herramientas suplementarios como el kit de herramientas de utilidad OpenGL® (GLUT) para evitar escribir código para generar manualmente la forma.
Cuando se trata de vértices en OpenGL®, la menor cantidad de puntos que se pueden usar para generar una esfera con cierto grado de suavidad es 12, creando un objeto con 20 caras triangulares conocido como icosaedro. Sin un procesamiento adicional, una esfera OpenGL® construida de esta manera tendrá esquinas agudas visibles alrededor de los bordes, lo que podría ser aceptable para algunas aplicaciones. Para lograr una esfera más redondeada, cada cara debe subdividirse aún más.
Subdividir un icosaedro para aumentar el número de vértices que contiene y formar una esfera OpenGL® más suave implica crear nuevos vértices en el centro de cada borde de cada triángulo existente. Esto significa que cada cara triangular ahora contendrá cuatro triángulos. La subdivisión puede continuar tanto como sea necesario, aunque agregar puntos exponencialmente puede crear rápidamente un objeto que tiene un tiempo de renderizado alto y puede resultar difícil de traducir.
A pesar de algunas de las comodidades matemáticas, una esfera OpenGL® proporciona a los programadores, como las normales de superficie que se pueden calcular fácilmente a partir de las coordenadas del vértice, texturizar una esfera puede presentar algunas complejidades. El uso de una textura bidimensional (2D) estándar proyectada sobre la esfera significa que las áreas superior e inferior de la imagen de textura se comprimirán, porque la forma de los triángulos cerca de los polos de la esfera se comprime. Para superar esto, se podría usar el mapeo de cubos o el programador podría generar las coordenadas de textura manualmente para el objeto.
Hay que tener en cuenta un factor sobre el uso de una biblioteca de utilidades para generar una esfera OpenGL®. Una esfera generada por GLUT o kits de herramientas similares a veces puede ser difícil de modificar, optimizar y administrar dentro de OpenGL®. Por esta razón, a veces es beneficioso usar código escrito personalizado para generar una esfera OpenGL® para que se cree y pueda usarse de la manera más eficiente posible dentro del programa.