Skip to main content

O que são as linhas OpenGL®?

Na Open Graphics Library® (OpenGL®), as linhas são uma das formas primitivas básicas que o OpenGL® é capaz de desenhar e constituem um dos blocos de construção que às vezes são usados ​​para renderizar triângulos. As linhas OpenGL® são apenas um gráfico de conexão reto entre dois vértices. Embora o conceito e a execução das linhas OpenGL® possam ser simples, eles tendem a demorar mais tempo para renderizar do que outras primitivas em algumas implementações, em parte porque não há especificação sobre seu comportamento no padrão OpenGL®. O uso explícito de linhas do OpenGL® às vezes pode ter resultados inesperados, porque as linhas são rasterizadas de uma maneira específica que pode fazer com que pareçam desconectadas de outras geometrias da cena ou pareçam estar um pouco afastadas de onde se espera que elas estejam. Além de uma linha básica, as linhas OpenGL® também podem ser formadas em tiras e laços de linha, como as tiras de triângulo, com o final de cada linha sendo o início da próxima.

Quando usadas em uma cena, as linhas OpenGL® são um tipo de forma primitiva que consiste em dois vértices ou coordenadas no espaço tridimensional (3D), conectados por um caminho reto e visível. Ao contrário de outras primitivas, como um triângulo, uma linha geralmente não possui uma superfície, embora ainda possa ser colorida com mistura e usando a coloração de vértice. As linhas são frequentemente usadas em visualizações 3D matemáticas e científicas, bem como para indicadores de exibição bidimensionais (2D) - como mira ou setas apontando para áreas da tela - para o visualizador.

A largura de uma linha pode ser definida até certo ponto através do OpenGL®. O número de pixels de largura que a linha deve ter em um determinado ponto pode ser especificado, embora não exista um padrão real de como isso deve operar de uma plataforma para outra. Em algumas situações, a largura não pode ser alterada, enquanto, em outros casos, a largura das linhas OpenGL® é restrita a um número aparentemente arbitrário.

Além da linha básica, várias linhas OpenGL® podem ser combinadas para formar duas outras estruturas conhecidas como faixas e loops de linha. As faixas de linha são simplesmente uma sequência de vértices em que o início de cada nova linha é o ponto final da última linha. Essa é principalmente uma função de conveniência, mas pode renderizar mais rapidamente do que usar linhas individuais. Um loop de linha é quase idêntico a uma faixa de linha, exceto que o último vértice do loop é conectado novamente ao primeiro vértice especificado.

Uma complicação ao usar as linhas OpenGL® é que, por terem apenas 1 pixel de largura por padrão, às vezes não são renderizadas da maneira correta. Em certos casos, especialmente se a linha for anti-alias, certos pixels na imagem rasterizada podem não ser exibidos. A linha em si também pode aparecer a alguns pixels de distância do esperado. Isso é causado em grande parte por pequenas variações na matemática de ponto flutuante que o OpenGL® usa; nem sempre é um problema que pode ser facilmente resolvido sem a conversão de linhas em polígonos para fins de renderização.