O que é 2D OpenGL®?
O Open Graphics Library® (OpenGL®) é principalmente uma interface de programação que permite que os 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 aprimorar o desempenho e, às vezes, a facilidade de software de programação que não emprega necessariamente modelos ou transformações 3D. O método mais comum de usar 2D OpenGL® é desenhar quadriláteros, ou retângulos, que são 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 sendo transformados com matrizes 3D para efeitos especiais que, de outra forma, seriam difíceis de fazer com apenas 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ãoIsso pode tornar complexo isolar os locais de pixels únicos, além de exigir algum suporte de hardware em 3D para um programa que possa não exigir realmente.
Muitos desenvolvedores de hardware e software fornecem drivers e interfaces de programação abstrata personalizadas (APIs) que tornam seus produtos específicos totalmente compatíveis com a biblioteca OpenGL®. Essa aceitação generalizada 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 funcione mais suavemente 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 de 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 que são loucose nas mesmas proporções que uma imagem de textura para retratar os gráficos. Isso tem a vantagem de ser muito rápido em renderizar, além de simplificar a programação, para que use algumas das mesmas lógicas que os gráficos tamponados baseados em varredura. Alguns efeitos, como escalar uma imagem, girar uma imagem ou reverter uma imagem, podem realmente 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 outros programas 2D normalmente. Um desses fatores é a precisão dos pixels na tela. O OpenGl® não equivale a uma parte do sistema de coordenadas virtuais a um pixel em uma tela, como os gráficos raster, portanto, os números de ponto flutuante às vezes precisam ser usados para coordenadas de tela para evitar lacunas na tela ou posicionamentos de pixels estranhos.
Outra questão é que o OpenGL® exige 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 um intErface ou janela do sistema, os dispositivos que não possuem aceleração gráfica podem sofrer uma perda de desempenho para gráficos que podem parecer muito básicos para um usuário final. O OpenGL também não fornece suporte nativo para exibir texto, o que significa que mostrar grandes áreas de texto pode exigir uma quantidade razoável de código personalizado.