El Lenguaje OpenGL

OpenGL
Información sobre la plantilla
Lenguaje OpenGL.jpg
Lenguaje de Programación

El lenguaje OpenGL. Es una librería escrita en C que permite la manipulación de gráficos 3D a todos los niveles. Esta librería se concibió para programar en máquinas nativas Silicón Graphics bajo el nombre de GL (Graphics Library). Posteriormente se consideró la posibilidad de extenderla a cualquier tipo de plataforma y asegura así su portabilidad y extensibilidad de uso con lo que se llegó al término Open Graphics Library, es decir, OpenGL.


Donde se puede usar

Esta librería, puede usarse bajo todo tipo de sistemas operativos e incluso usando una gran variedad de lenguajes de programación. Podemos encontrar variantes de OpenGL para Windows 95/NT, Unix, Linux, Ins, Solares, Delphi, Java e incluso Visual Basic. No obstante, su uso más extenso suele ser el lenguaje C ó C++. Actualmente es una de las tecnologías más empleadas en el diseño de aplicaciones 3D, hasta su última versión.

Partes Funcionales

Se divide en tres partes funcionales:

  • La librería OpenGL, que proporciona todo lo necesario para acceder a las funciones de dibujado de OpenGL.
  • La librería GLU (OpenGL Utility Library), una librería de utilidades que proporciona acceso rápido a algunas de las funciones más comunes de OpenGL, a través de la ejecución de comandos de más bajo nivel pertenecientes a la librería OpenGL propiamente dicha.
  • GL X (OpenGL Extensión to the X Windows System) proporciona un acceso a OpenGL para poder interactuar con un sistema de ventanas X Windows, y está incluido en la propia implementación de OpenGL (su equivalente en Windows es la librería WGL, externa a la implementación de OpenGL).

Además de estas tres librerías, la librería GLUT (OpenGL Utility Toolkit) proporciona una interfaz independiente de plataforma para crear aplicaciones de ventanas totalmente portables.

OpenGL como una máquina de estados

OpenGL, es una librería que trabaja como una máquina de estados, esto es algo que oiremos hasta la saciedad al programar con OpenGL ¿pero qué significa? La utilización de OpenGL consiste en activar y desactivar opciones, y realizar ciertas acciones, que tendrán como fruto una representación en pantalla (o no) de una serie de datos, dependiendo en el estado en que nos encontremos. Así, no será lo mismo dibujar un triángulo y activar una textura, que activar una textura y dibujar untriángulo.

Procedimientos para dibujar

En OpenGL, el orden de las acciones resulta crítico en la mayoría de las ocasiones, de igual manera, no será lo mismo trasladar y rotar algo. De este modo, de manera muy abstracta, la manera de dibujar algo en OpenGL suele ser a siguiente:

  • Activar todas las opciones que van a ser persistentes a la escena (ponemos la cámara, activamos la iluminación global).
  • Activar las opciones que establecen el estado de un objeto específico (su posición en el espacio, su textura, etc).
  • Dibujar el objeto.
  • Desactivar las opciones propias de ese objeto (volver a la posición original, desactivar su textura).
  • Volver al punto 2 hasta haber dibujado todos los objetos.
  • Estas operaciones pueden agruparse en jerarquías, lo que proporciona una gran potencia y flexibilidad a la hora de programar.

Fuentes

  • Kilgard, M. J. The OpenGL Utility Toolkit Programming Interface, 1996.
  • Naider Jackie, T.D, M.W., OpenGL Programming Guide or the Red Book, Addison –Wesley, 1994.