O que é o 2D OpenGL®?
A Open Graphics Library® (OpenGL®) é principalmente uma interface de programação que permite que aplicativos de software interajam com o hardware gráfico e criem cenas tridimensionais (3D) com rapidez e eficiência. Usando técnicas de programação bidimensional (2D) OpenGL®, a aceleração de hardware fornecida pela biblioteca pode melhorar o desempenho e, às vezes, a facilidade do software de programação que não necessariamente emprega modelos ou transformações 3D. O método mais comum de usar 2D OpenGL® é desenhar quadriláteros ou retângulos texturizados com uma imagem, criando efetivamente um objeto no espaço 3D a partir de uma imagem. Uma vez estabelecidos, esses quadriláteros podem ser manipulados, com métodos 2D estritos ou transformados com matrizes 3D para efeitos especiais que, de outra forma, seriam difíceis de fazer apenas com gráficos raster 2D. Existem algumas complicações que o uso de uma biblioteca 3D traz ao empregá-la apenas para gráficos 2D, incluindo hiperprecisão que pode tornar complexo o isolamento de locais de pixel único, além de exigir algum suporte de hardware 3D para um programa que pode não ser realmente necessário. isto.
Muitos desenvolvedores de hardware e software fornecem drivers e APIs (interfaces de programação abstrata) personalizadas que tornam seus produtos específicos totalmente compatíveis com a biblioteca OpenGL®. Essa ampla aceitação de um padrão aberto oferece aos programadores uma maneira de acessar diretamente o hardware em uma grande variedade de sistemas. A aceleração de hardware fornecida ao usar o 2D OpenGL® pode permitir que um programa seja executado sem problemas do que seria possível. Essa velocidade é equilibrada pelo fato de que o uso do pipeline OpenGL® para gráficos pode ser muito diferente do uso dos métodos tradicionais de programação 2D que geralmente não empregam um modelo de máquina de estado como o OpenGL®.
A maioria dos programas 2D OpenGL® usa retângulos planos feitos nas mesmas proporções que uma imagem de textura para retratar os gráficos. Isso tem a vantagem de ser muito rápido na renderização, além de simplificar a programação, para que ele use a mesma lógica dos gráficos em buffer baseados em raster. Alguns efeitos, como dimensionar uma imagem, girar ou reverter uma imagem, podem ser executados com muito mais eficiência usando o OpenGL®.
Existem certos fatores que podem fazer com que os programas 2D OpenGL® sejam mais complexos do que normalmente outros programas 2D. Um desses fatores é a precisão dos pixels na tela. O OpenGL® não iguala uma parte do sistema de coordenadas virtual a um pixel em uma tela, como os gráficos de varredura, por isso, números de ponto flutuante às vezes precisam ser usados para coordenadas da tela para evitar lacunas na exibição ou posicionamento estranho de pixels.
Outra questão é que o OpenGL® requer o uso de uma placa gráfica para aumentar a velocidade de renderização. Se um aplicativo estiver usando o OpenGL® para a exibição de uma interface ou janela do sistema, os dispositivos que não tiverem aceleração gráfica poderão sofrer uma perda de desempenho em gráficos que possam parecer muito básicos para o usuário final. O OpenGL também não fornece nenhum suporte nativo para a exibição de texto, o que significa que mostrar grandes áreas de texto pode exigir uma quantidade razoável de código personalizado.