Skip to main content

O que é um OpenGL® Quad?

Um quadrilátero OpenGL®, ou quad, em programação e gráficos de computador é uma forma tridimensional (3D), também chamada de polígono, que possui quatro lados e quatro pontos. Cada ponto 3D que representa um único canto do quad OpenGL® é conhecido como vértice e é definido com três números relacionados à sua posição de coordenada no espaço virtual. Os vértices de um quad não precisam seguir nenhuma orientação real, exceto que deve haver quatro deles; caso contrário, a forma é conhecida como polígono, triângulo ou linha, dependendo do número real. A maioria das imagens digitais é na verdade retangular, portanto, um quad OpenGL® pode ser uma forma útil porque a imagem pode ser mapeada para a superfície da textura sem uma grande quantidade de distorção e sem a necessidade de técnicas complexas de mapeamento de textura. O uso de um quad OpenGL® tem seus próprios desafios, no entanto, e há vários programadores que sugerem evitar seu uso completamente.

Um dos principais usos de um quad OpenGL® é desenhar gráficos bidimensionais (2D) dentro de um ambiente 3D. Isso pode ser feito para sobrepor uma interface de usuário estática sobre uma cena 3D ou para emular gráficos 2D com o OpenGL®. Embora o OpenGL® tenha sido projetado para renderizar gráficos 3D complexos, ele é frequentemente usado em aplicativos de gráficos 2D devido às otimizações e flexibilidade da interface de programação abstrata (API). Um quad se torna muito importante na renderização de gráficos 2D, porque é uma representação 3D natural de uma imagem digital, o que significa que um quad pode ser proporcional para corresponder exatamente à dimensão da imagem. Uma vez que as proporções coincidem, a imagem pode ser mapeada ou projetada na textura da superfície do quadrilátero, sem qualquer tipo de distorção, quebra ou espaço na sarjeta.

Uma vantagem de usar um quad OpenGL®, segundo alguns programadores, é que é mais fácil pensar em como os quads se encaixam, em vez de visualizar como os triângulos se encaixam. Isto é especialmente verdade para formas 3D simples, como um cubo em que cada quadra é um único lado; com uma malha triangular, dois triângulos devem ser combinados para formar um quadrilátero que forma um único lado. Quads também podem ser facilmente manipulados para criar perspectiva ou outros efeitos dentro de um ambiente que é lado a lado ou alinhado a uma grade.

Existem algumas desvantagens no uso de um quad OpenGL®, principalmente devido aos algoritmos usados ​​para rasterizar ou renderizar uma imagem dentro da janela do visualizador. Um dos problemas mais encontrados é que a placa gráfica ou de renderização pode, a qualquer momento, dividir o quadrilátero em dois triângulos para fins de eficiência. Isso pode fazer com que uma superfície lisa, de outra forma, tenha repentinamente uma distorção visível em um ângulo no quadrilátero onde as bordas dos triângulos se encontram.

Outro problema mais comum do que se pensa às vezes tem a ver com o recorte de um quad OpenGL®. Quando parte do quad está fora da janela de visualização, fora da tela, o renderizador cortará o quad para que apenas a parte visível seja renderizada. Isso significa que um quad será cortado geometricamente. Se o quad foi convertido em dois triângulos antes do corte, cada triângulo se tornará um quad e cada um desses quads será convertido em dois triângulos. Isso leva a uma situação em que um quadrilátero recortado consiste repentinamente em quatro triângulos em vez de um quadrilátero liso.

As complexidades e imprevisibilidade da conversão de quadríceps em triângulos levam a resultados indesejáveis. Isso inclui distorções nas texturas, imprecisões ou artefatos relacionados à iluminação de vértices e, às vezes, superfícies poligonais ausentes. Por esses motivos, alguns programadores evitam o uso de quads por completo.