Primeros pasos en OpenGL

Este tutorial cubre los primeros conceptos previos a la creación de aplicaciones con OpenGL y en general a la creación de contenido 3d. Es necesario aclarar que el tutorial, por simplicidad y extensión se enfoca sobre la especificación 1.1 de OpenGL, es decir, solo se menciona la funcionalidad de la llamada “Fixed Pipeline” (ahora con la entrada de OpenGL 2.0 y la introducción de los shader al estándar, la estructura cambio).

En el tutorial se mencionan algunas palabras en ingles, acompañadas de su traducción al español, solo para conservar el término original (en ingles) y facilitar la búsqueda posterior del término, tanto en español, como en inglés.

¿Qué es OpenGL? : OpenGL (Open Graphics Library) es un API (de Aplication Programming Interface, Interfaz de Programación de Aplicaciones) libre, multiplataforma, orientado a la creación de contenido 3d. A un nivel más simple se puede decir que es una librería que permite hacer software con gráficos 3d sin preocuparse por el hardware en que se va a ejecutar y que tiene un gran soporte en diferentes sistemas operativos como Windows, OS/2, UNIX, FreeBSD , Linux, etc. Hay que hacer una diferencia clara, OpenGL no es un lenguaje de programación, pero se puede trabajar con él desde diferentes lenguajes como c++, c#, java y Visual Basic.

¿Para que puedo usar OpenGL? : OpenGL puede ser usado para todo tipo de aplicaciones que necesiten visualización 3d en tiempo real de alto rendimiento y calidad, en esto están incluido los videojuegos, CAD, aplicaciones científicas, médicas, militares, simuladores, etc.

¿Qué necesito para utilizar OpenGL en mis programas? Es buena idea utilizar un IDE como Visual Studio, Eclipse o DevCpp para realizar los programas, ya que facilita mucho el trabajo, adicionalmente, en los archivos fuente donde se utilicen funciones de OpenGL es necesario incluir las bibliotecas de prototipos gl.h y glu.h, que generalmente se encuentran preinstaladas no solo en Visual Studio, sino en otros entornos donde se soporta el uso de OpenGL. También es necesario hacer un link con las librerías binarias, en Visual Studio las dos cosas se verían como:


//Inclusión de las librerías prototipo

#include <gl/gl.h>
#include <gl/glu.h>

//Link con las librerías binarias

#pragma comment(lib, “opengl32.lib”)
#pragma comment(lib, “glu32.lib”)

Es importante notar 2 cosas, las librerías binarias que estamos usando corresponden a la implementación de software de Microsoft (el 32 al final lo indica), que finalmente utilizan las librerías dinámicas opengl32.dll y glu.dll localizados en el directorio de Windows y por otra parte, no todos los IDE y sistemas operativos obedecen a la misma forma de inclusión de OpenGL, por lo que el desarrollo variará ligeramente en este punto, para mayor información al respecto ver http://nehe.gamedev.net/.

Con estas pequeñas aclaraciones, es necesario pasar a algunos conceptos fundamentales del 3d.

SISTEMAS DE COORDENADAS

Para trabajar gráficos bien sea 2d o 3d es necesario tener una forma de describir la posición de un objeto cualquiera en el espacio. Para esto es necesario establecer un patrón de referencia, lo cual se hace generalmente a través de un sistema de coordenadas y el sistema al que mas estamos acostumbrados es el de coordenadas cartesianas, en el cual un punto puede ser expresado como una distancia a través uno (x), dos (x,y) o tres ejes (x,y,z) mutuamente perpendiculares que se intersecan en el punto (0,0) en el caso de dos dimensiones y (0,0,0) en el caso de tres.

Sistema Cartesiano

OpenGL maneja los sistemas 2d y 3d, aunque el sistema de 2d sobre píxeles en pantalla es bastante ineficiente, por lo que en la mayoría de los casos mejor utilizar 3d y simular el 2d con una proyección ortográfica de la escena.

1 2 3

Compartir esta entrada

DiggReddit
  • http://twitter.com/rubdottocom Rub/ásicos estudiados en el álg/

    Excelente tutorial, tanto este como el de las primitivas de OpenGL 😀

  • Alejandro

    Gran tutorial. El mas detallado y especifico que he encontrado.

  • Carlos Martinez

    Muy bueno para empezar a trabajar con OpenGL.

  • carlos

    necesito toda la informacion necesaria para programar en opengl,pero poder descargarla para estudiar.

  • http://www.helmer.com.pe el verdugo

    muy bueno causa chevre el tutorial man chevere sigue sacnado ams ps man

  • Adan

    mmmm pos mas o menos

  • Salvatore

    Yo queria ver codigo, jeje. Esta muy buena la explicación

  • Sephirot

    Gracias por hacer tutoriales. Se agradece. Sigue asi ! 😉

  • http://aduisc.blogspot.com kevin martinez

    Gracias por tan excelente aporte, aun no me queda claro lo de las perspectivas, pero seguiré dandome mis vueltas por este sitio

  • Publiventasmen