Skip to main content

O que é uma esfera OpenGL®?

Uma esfera da Open Graphics Library® (OpenGL®), no nível mais básico, é um objeto tridimensional (3D) composto de uma série de triângulos ou quadriláteros cujos vértices são todos eqüidistantes do ponto central. Isso significa que, quando uma esfera OpenGL® é vista de qualquer ângulo, o contorno aparece como um círculo perfeito para o espectador, embora a iluminação e o sombreamento possam dar ao volume uma aparência mais parecida com uma bola. O número de vértices usados ​​para criar uma esfera OpenGL® determina a suavidade do objeto em sua aproximação de uma esfera real, com menos de 12 pontos criando um objeto que não pode ser considerado uma esfera. Embora uma esfera seja considerada uma forma primitiva em muitos aplicativos e bibliotecas gráficas, o OpenGL® não possui nenhuma funcionalidade inata para renderizar uma esfera, o que significa que kits de ferramentas adicionais, como o OpenGL® Utility toolkit (GLUT), precisam ser usados ​​para evitar a gravação de código. para gerar manualmente a forma.

Ao lidar com vértices no OpenGL®, a menor quantidade de pontos que pode ser usada para gerar uma esfera com algum grau de suavidade é 12, criando um objeto com 20 faces triangulares conhecidas como icosaedro. Sem processamento adicional, uma esfera OpenGL® construída dessa maneira terá cantos afiados visíveis nas bordas, o que pode ser aceitável para algumas aplicações. Para alcançar uma esfera mais arredondada, cada face precisa ser subdividida.

Subdividir um icosaedro para aumentar o número de vértices que ele contém e formar uma esfera OpenGL® mais suave envolve a criação de novos vértices no centro de cada aresta de cada triângulo existente. Isso significa que cada face triangular agora conterá quatro triângulos. A subdivisão pode continuar o necessário, embora a adição de pontos exponencialmente possa criar rapidamente um objeto que tenha um tempo de renderização alto e que possa se tornar difícil de traduzir.

Apesar de algumas das conveniências matemáticas que uma esfera OpenGL® fornece aos programadores, como as normais de superfície que podem ser facilmente calculadas a partir das coordenadas dos vértices, a texturização de uma esfera pode apresentar algumas complexidades. O uso de uma textura bidimensional padrão (2D) projetada na esfera significa que as áreas superior e inferior da imagem da textura serão compactadas, porque a forma dos triângulos próximos aos pólos da esfera é comprimida. Para superar isso, o mapeamento de cubo pode ser usado ou o programador pode gerar as coordenadas de textura manualmente para o objeto.

Um fator deve ser observado sobre o uso de uma biblioteca de utilitários para gerar uma esfera OpenGL®. Uma esfera gerada pelo GLUT ou kits de ferramentas semelhantes às vezes pode ser difícil de modificar, otimizar e gerenciar no próprio OpenGL®. Por esse motivo, às vezes é benéfico usar código escrito personalizado para gerar uma esfera OpenGL® para que ele seja criado e possa ser usado da maneira mais eficiente possível dentro do programa.