miércoles, 18 de septiembre de 2019

Gnuplot y OpenGL


gnuplot es un programa que permite generar gráficas 2D y 3D. Sus principales virtudes son la facilidad de uso y un acabado de muy alta calidad. En este tutorial nos referiremos a la versión gnuplot 3.7.

Los autores iniciales de gnuplot son Thomas Williams y Colin Kelly, quienes decidieron crear un programa que les permitiera visualizar las ecuaciones matemáticas de las clases de electromagnetismo y ecuaciones diferenciales. Su primera intención fue llamarlo "newplot", pero descubrieron que ya existía otro programa con ese mismo nombre, así que utilizaron el homófono (al menos en inglés) "gnuplot".

gnuplot no tiene ninguna relación con el proyecto GNU ni con la FSF. Actualmente ni es mantenido por la FSF ni está bajo la GPL. gnuplot es software libre en el sentido de que las fuentes están disponibles (y además son gratuitas), pero no se permite distribuir versiones modificadas.
gnuplot ofrece las siguientes facilidades:
  • Representaciones bidimensionales con distintos estilos (puntos, líneas, barras ...).
  • Representaciones tridimensionales (contorno y superficie).
  • Facilidades para etiquetar las gráficas, ejes y puntos representados (títulos y etiquetas).
  • Permite realizar cálculos con enteros, decimales y complejos.
  • Posee un conjunto de funciones predefinidas y permite al usuario definir las suyas propias.
  • Ayuda en línea.
  • Funciona en distintos SO y permite obtener gráficos en casi cualquier formato.
  • Permite trabajo interactivo o en modo comando (batch).


OpenGL (Open Graphics Library) es una especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. La interfaz consiste en más de 250 funciones diferentes que pueden usarse para dibujar escenas tridimensionales complejas a partir de primitivas geométricas simples, tales como puntos, líneas y triángulos.

Fue desarrollada originalmente por Silicon Graphics Inc. (SGI) en 199 y se usa ampliamente en CAD, realidad virtual, representación científica, visualización de información y simulación de vuelo. También se usa en desarrollo de videojuegos, donde compite con Direct3D en plataformas Microsoft Windows.

Básicamente OpenGL consiste en una serie de librerías y rutinas de clases por lo cual, OpenGL no es un paquete de software de renderizado y modelado como Blender o 3D Max, básicamente es una API de bajo nivel que proporciona una interfaz de hardware de gráficos. No es por lo tanto ningún lenguaje de programación, sino tan sólo un conjunto de librerías que son utilizadas a través de lenguajes de programación como VisualC++ para conseguir un interfaz software entre las aplicaciones y el hardware gráfico.

Programas como Blender utilizan OpenGL, por lo que puede hacer cualquier representación que se da en Blender con OpenGL. Al usar OpenGL directamente, se tiene que programar todos los efectos de iluminación, texturizado, carga modelo, etc. en sí mismo.

A cambio, OpenGL, ofrece algo muy valioso: la independencia con respecto a la plataforma de hardware y el sistema operativo en que se trabaje, brindando con ello una enorme portabilidad a sus productos. Así, OpenGL, permite:
  • Construir formas geométricas a partir de primitivas.
  • Ubicar los objetos en el espacio tridimensional y seleccionar el punto de vista de la escena.
  • Aplicar el color a los objetos, ya sea mediante una asignación explícita de la aplicación, a partir de las condiciones de iluminación o mediante la utilización de texturas.
  • Convertir la descripción matemática de los objetos y la información sobre el color en pixeles de la pantalla, proceso que se llama rasterización.
Aunque OpenGL está concebido para diseñar aplicaciones interactivas y facilita al usuario herramientas como la selección sus capacidades resultan insuficientes para, entre otras cosas, crear interfaces gráficas con un grado mayor de interactividad. Estas limitaciones condujeron al desarrollo de las librerías AUX y GLUT. Las librerías AUX presentan numerosas insuficiencias, y su aplicación se limita a programas de simple enseñanza.

Referencias Bibliográficas:

  • https://blanchardspace.wordpress.com/2013/02/24/que-es-opengl
  • https://www.ibiblio.org/pub/linux/docs/LuCaS/Presentaciones/200304curso-glisa/gnuplot/curso-glisa-gnuplot-html/x18.html


No hay comentarios.:

Publicar un comentario