Skip to main content

¿Qué es 2D OpenGL®?

Open Graphics Library® (OpenGL®) es principalmente una interfaz de programación que permite que las aplicaciones de software interactúen con hardware de gráficos y creen escenas tridimensionales (3D) de manera rápida y eficiente. Usando técnicas de programación bidimensionales (2D) OpenGL®, la aceleración de hardware proporcionada por la biblioteca puede mejorar el rendimiento y, a veces, la facilidad del software de programación que no necesariamente emplea modelos 3D o transformaciones. El método más común de usar 2D OpenGL® es dibujar cuadriláteros, o rectángulos, que se texturizan con una imagen, creando efectivamente un objeto en el espacio 3D a partir de una imagen. Una vez establecidos, estos cuadriláteros se pueden manipular, ya sea con estrictos métodos 2D o mediante la transformación con matrices 3D para obtener efectos especiales que de otro modo serían difíciles de hacer solo con gráficos de trama 2D. Existen algunas complicaciones que conlleva el uso de una biblioteca 3D cuando se emplea solo para gráficos 2D, incluida la hiperprecisión que puede hacer que sea complejo aislar ubicaciones de un solo píxel, así como exigir un poco de soporte de hardware 3D para un programa que realmente no requiera eso.

Muchos desarrolladores de hardware y software proporcionan controladores e interfaces de programación abstracta (API) personalizadas que hacen que sus productos particulares sean totalmente compatibles con la biblioteca OpenGL®. Esta aceptación generalizada de un estándar abierto ofrece a los programadores una forma de acceder directamente al hardware en una gran variedad de sistemas. La aceleración de hardware proporcionada cuando se utiliza 2D OpenGL® puede permitir que un programa se ejecute de manera más fluida de lo que sería posible. Esta velocidad se equilibra por el hecho de que el uso de la tubería OpenGL® para gráficos puede ser muy diferente del uso de métodos de programación 2D tradicionales que generalmente no emplean un modelo de máquina de estado como OpenGL®.

La mayoría de los programas 2D OpenGL® usan rectángulos planos que están hechos en las mismas proporciones que una imagen de textura para representar los gráficos. Esto tiene la ventaja de ser muy rápido de renderizar, además de simplificar la programación, por lo que utiliza la misma lógica que los gráficos almacenados en búfer basados ​​en ráster. Algunos efectos, como escalar una imagen, rotar una imagen o revertir una imagen, en realidad se pueden realizar de manera mucho más eficiente usando OpenGL®.

Hay ciertos factores que pueden hacer que los programas 2D OpenGL® sean más complejos de lo que normalmente podrían ser otros programas 2D. Uno de estos factores es la precisión de los píxeles en la pantalla. OpenGL® no equipara una parte del sistema de coordenadas virtual a un píxel en una pantalla, como lo hacen los gráficos de trama, por lo que a veces es necesario utilizar números de punto flotante para las coordenadas de la pantalla para evitar espacios en la pantalla o ubicaciones extrañas de píxeles.

Otro problema es que OpenGL® requiere el uso de una tarjeta gráfica para aumentar la velocidad de renderizado. Si una aplicación está utilizando OpenGL® para mostrar una interfaz o ventana del sistema, entonces los dispositivos que no tienen aceleración de gráficos podrían sufrir una pérdida de rendimiento para los gráficos que pueden parecer muy básicos para un usuario final. OpenGL tampoco proporciona soporte nativo para mostrar texto, lo que significa que mostrar grandes áreas de texto podría requerir una buena cantidad de código personalizado.