O que é um polígono OpenGL®?
Um polígono da Open Graphics Library® (OpenGL®) é qualquer objeto criado no OpenGL® que consiste em mais de dois vértices. Essencialmente, qualquer objeto que não seja um ponto ou uma linha é considerado um polígono. O OpenGL®, assim como a maioria das placas gráficas, geralmente possui otimizações especiais para lidar principalmente com triângulos ou polígonos de três lados, porque os triângulos são o tipo mais simples de polígono que pode ser feito com o menor número de vértices e lados. Em alguns casos, os quadriláteros ou polígonos de quatro lados podem ser manipulados pelo OpenGL®, principalmente nos modos de desenho bidimensional (2D). Com exceção de um polígono OpenGL® simples e convexo, a maioria das formas com mais de três vértices acabará sendo dividida em triângulos através de um processo chamado mosaico, que pode ter efeitos indesejados dramáticos em uma cena.
O único tipo de polígono OpenGL® que pode ser desenhado de forma nativa sem a necessidade de mosaico é conhecido como simplesmente polígono. Esse tipo de forma segue algumas regras muito simples. Os lados devem ser convexos, o que significa que não criam ângulos nos vértices inferiores a 90 °. Nenhuma aresta pode se cruzar e apenas duas linhas podem se encontrar em qualquer vértice. Isso limita um polígono simples a uma forma 2D independente, como um quadrado ou um octógono, porque, se fosse tridimensional (3D), mais de duas linhas se encontrariam em alguns vértices.
Ao construir um polígono OpenGL® muito complexo, geralmente é mais fácil criar o objeto em um programa de modelagem 3D externo. Isso não apenas permite um ambiente visual mais conveniente para a construção de um objeto, mas tem o benefício adicional de fornecer ao designer controle sobre como as formas são colocadas em mosaico, para que não causem problemas quando renderizadas. Como alternativa, um polígono pode ser criado processualmente através de algoritmos que plotam os vértices de acordo com um padrão, como pode ser feito para criar um padrão de hélice ou espiral.
Cada polígono do OpenGL® tem uma face, a área sólida dentro das linhas da forma. Embora seja possível alterar esse comportamento, em geral cada polígono só é visível quando seu rosto está apontando para a câmera de visualização. Se um polígono estiver voltado para o lado errado, ele poderá ficar invisível, dependendo do modo de renderização.
Todo polígono do OpenGL® também possui um valor conhecido como normal. O normal é usado para definir a direção da superfície do polígono. Mesmo que o polígono esteja claramente em um determinado ângulo e em uma determinada posição, a superfície normal pode ajudar a criar efeitos especiais de textura ou imitar propriedades físicas que não são uniformes. Um normal para um polígono OpenGL® pode ser definido como qualquer valor, mesmo valores negativos, embora os resultados possam ser imprevisíveis.