OpenGL es una API multiplataforma para gráficos 2D y 3D que abstrae las funciones de hardware de gráficos. Fue creada en 1992 por SGI para ser de código abierto y soportada por múltiples lenguajes. OpenGL convierte primitivas como puntos, líneas y polígonos en píxeles usando un estado de máquina. Ofrece características como transformaciones, color y diferentes tipos de primitivas.
2. OpenGL es una Interfaz de Programación de Aplicaciones (API), basada en procedimientos de bajo nivel, multiplataforma, soportada por múltiples lenguajes, que abstrae las diferentes funciones y procesamientos de gráficos por computadora en 2D y en 3D sobre las plataformas de hardware. La responsable de Open Graphics Library es Silicon Graphics Incorporated ( SGI ), la cual en 1992, SGI comenzaría la creación de OpenGL partiendo de su antecesor IrisGL , con el objetivo de que fuese una plataforma de código abierto, para el desarrollo de aplicaciones gráficas por computadora. OPENGL http://sabia.tic.udc.es/gc/Tutorial%20OpenGL/tutorial/cap1.htm#_Toc535127309 API (conjunto de técnicas, funciones y métodos utilizados para establecer una comunicación entre los diferentes niveles o capas de un software)
3. OpenGL vs DirectX DIRECTX11 OPENGL 4.1 OPENGL 3 Característica OpenGL DirectX Multiples sistemas operativos Yes No Extension Mechanism Yes Yes Desarrollo Multiple member Board Microsoft Two-sided lighting Yes No Volume Textures Yes No Hardware independent Z-buffers Yes No Accumulation buffers Yes No Full-screen Antialiasing Yes Yes Motion Blur Yes Yes Depth of field Yes Yes Stereo Rendering Yes No Point-size/line-width attributes Yes No Picking Yes No Parametric curves and surfaces Yes No Cache geometry Display Lists Vertex Buffers System emulation Hardware not present Let app determine Interface Procedure calls COM Actualizaciones Anuales Anuales Código Fuente Muestra SDK Implementation DIRECTX 11
4.
5. El funcionamiento básico de OpenGL consiste en aceptar primitivas tales como puntos, líneas y polígonos, y convertirlas en píxeles. Este proceso es realizado por una arquitectura gráfica conocida como la Maquina de Estados de OpenGL. OpenGL como máquina de estados La utilización de OpenGL consiste en activar y desactivar opciones, y realizar ciertas acciones, que tendrán como fruto la representación o no, en pantalla, de una serie de datos, dependiendo en el estado en que nos encontremos. http://books.google.co.ve/books?id=ahb5bqeLROAC&pg=PA43&lpg=PA43&dq=game+irisgl&source=bl&ots=G4IBs4qHwx&sig=mJ6TnskRMJgd2aS45iCPAiLwN_0&hl=es&ei=dMB-TNeaO8KqlAf11uTvAw&sa=X&oi=book_result&ct=result&resnum=4&ved=0CCgQ6AEwAw#v=onepage&q&f=false
6. El espacio 3D OpenGL trabaja, a grandes rasgos, en un espacio de tres dimensiones, aunque veremos que realmente, trabaja con coordenadas homogéneas (de cuatro dimensiones). Las tres dimensiones que nos interesan ahora son las especificadas por un sistema 3D ortonormal. Es decir, sus ejes son perpendiculares, y cada unidad en uno de ellos está representada por un vector de módulo 1 Y+ Y- Z+ Z- X+ X- 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
9. Ejemplo de declaración y uso de primitivas: glBegin( TIPO ); glVertex3f( p0x, p0y, p0z ); glVertex3f( p1x, p1y, p1z ); glVertex3f( p2x, p2y, p2z ); ..... glVertex3f( p7x, p7y, p7z ); glEnd(); En donde glVertex3f( 0.0 , 0.0 , 0.0 ); EQUIVALE a... GLfloat vertice[3] = { 0.0, 0.0, 0.0 }; y después... glVertexfv( vertice ); OpenGL tiene tipos de datos definidos por esta librería que se anteceden por el prefijo GL (GLint, GLfloat, GLdouble) aunque se pueden usar los típicos (int, float, double). Primitivas en OpenGL
10. La traslación es el desplazamiento de un objeto en el espacio. Para simular la translación en OpenGL, de todos los objetos sobre una matriz se utiliza: glTranslate (x, y, z); Transformaciones. Traslación
11. Un objeto puede representarse con diferente tamaño cambiando su escalado. Para simular el escalado en OpenGL, en el sentido de las agujas del reloj, sobre el radio de origen en el punto x,y,z, se utiliza: Transformaciones. Escalado glScale (x, y, z);
12. Es la acción de mover un objeto alrededor de un eje. Para simular la rotación en OpenGL, en el sentido de las agujas del reloj, sobre el radio de origen en el punto x,y,z, se utiliza: Transformaciones. Rotación glRotate (ángulo, x, y, z);