SlideShare ist ein Scribd-Unternehmen logo
1 von 33
TRABAJO OPENGL
OpenGl

• 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 19922 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.
Historia
• En los años 1980 el desarrollo de software que fuese compatible con un
  amplio rango de hardware gráfico era un verdadero reto para los
  desarrolladores. Había que tratar con interfaces muy diferentes y escribir
  drivers específicos para cada tipo de hardware, resultando muy costoso;
  por ello, se subcontrataban equipos de programadores para agilizar el
  desarrollo. Dado que cada equipo trabajaba por separado en sus
  interfaces, se producía mucho código redundante. Además, era un
  proceso caro, por lo que varios grupos innovadores aceptaron el reto de
  encontrar un método mejor.
• Al principio de los años 1990 SGI era un grupo de referencia en gráficos 3D
  para estaciones de trabajo. Suya era la API IRIS GL,10 considerada puntera
  en el campo y estándar de facto, llegando a eclipsar a PHIGS, basada en
  estándares abiertos. IRIS GL se consideraba más fácil de usar y, lo más
  importante, soportaba renderizado en modo inmediato.
  Además, PHIGS, aparte de su mayor dificultad, fue considerada inferior a
  IRIS GL respecto a funcionalidad y capacidad.
• La competencia de SGI (Sun Microsystems, Hewlett-Packard e
  IBM, entre otros) fue capaz de introducir en el mercado hardware
  3D compatible con el estándar PHIGS mediante extensiones. Esto
  fue reduciendo la cuota de mercado de SGI conforme iban
  entrando diferentes proveedores en el mercado. Por todo ello, en
  un intento de fortalecer su influencia en el mercado, SGI decidió
  convertir el estándar IRIS GL en un estándar abierto.
• SGI observó que la API IRIS GL no podía ser abierta debido a
  conflictos de licencias y patentes; también contenía funciones no
  relevantes para los gráficos 3D como APIs para ventanas, teclado o
  ratón (en parte, porque fue desarrollada antes de la aparición del X
  Window System o de los sistemas NeWS de Sun).
  Además, mientras iba madurando el soporte del mercado para el
  nuevo estándar, se pretendía mantener los antiguos clientes
  mediante bibliotecas añadidas como Iris Inventor o Iris Performer.
El resultado de todo lo anterior fue el lanzamiento del
estándar OpenGL.
• Algunos de los logros que se consiguieron fueron:
• Estandarizar el acceso al hardware.
• Trasladar a los fabricantes la responsabilidad del desarrollo
   de las interfaces con el hardware.
• Delegar las funciones para ventanas al sistema operativo.
• Con la variedad de hardware gráfico existente, lograr que
   todos hablasen el mismo lenguaje obtuvo un efecto
   importante, ofreciendo a los desarrolladores de software
   una plataforma de alto nivel sobre la que trabajar.
• En 1992,11 SGI lideró la creación del OpenGL Architecture Review Board
  (OpenGL ARB), grupo de empresas que mantendría y extendería la
  especificación OpenGL en los años siguientes. OpenGL evolucionó desde
  IRIS GL, superando su problema de dependencia del hardware al ofrecer
  emulación software para aquellas características no soportadas por el
  hardware del que se dispusiese. Así, las aplicaciones podían utilizar gráficos
  avanzados en sistemas relativamente poco potentes.
• En 1994 SGI barajó la posibilidad de lanzar un producto denominado
  OpenGL++, el cual incluía elementos como una API de scene-graph (basada
  presumiblemente en la tecnología de Performer). Dicha especificación fue
  divulgada entre unos pocos grupos interesados, pero nunca apareció
  finalmente como producto.12
• En 1995 Microsoft lanzó Direct3D, que se convertiría en el principal
  competidor de OpenGL. El 17 de diciembre de 199713 Microsoft y SGI
  iniciaron el proyecto Fahrenheit, esfuerzo cooperativo con el objetivo de
  unificar las interfaces de OpenGL y Direct3D (y añadir también una API
  scene-graph). En 1998 se uniría al proyecto Hewlett-Packard.14 Pese a
  tener un principio prometedor en estandarizar las APIs de gráficos 3D,
  debido a restricciones financieras en SGI y la falta general de apoyo por
  parte de la industria, fue finalmente abandonado en 1999.15
Historia versiones
• OpenGL 1.0
• Publicada en enero de 1992.
  La primera especificación de OpenGL fue
  publicada por Mark Segal y Kurt Akeley.
• OpenGL 1.1
• Publicada en enero de 1997.
  OpenGL 1.1 se enfocó en el soporte de texturas
  y formatos de textura sobre hardware de GPU.
  Tarjetas gráficas soportadas: todas
Extensión                Id de extensión           Funciones

                                                   glVertexPointer, glColorPoi
Vertex Arrays               EXT_vertex_array
                                                   nter, glNormalPointer
Polygon Offsets (depth
                            EXT_polygon_offset     glPolygonOffset
biasing)
RGBA logical blending       EXT_blend_logic_op     glBlendFunc
                            EXT_subtexture,
Texture Copy and Sub-copy                          glTexSubImage1D/2D/3D
                            EXT_copy_texture
                                                   RGB, LUMINANCE, ALPHA,
Texture Formats             EXT_texture            INTENSITY (in
                                                   glTexImage2D)
                                                   glGenTextures,
Texture Objects             EXT_texture_object
                                                   glBindTextures
OpenGL 1.2
Publicada el 16 de marzo de 1998.
OpenGL 1.2 se enfocó en el soporte de texturas de volumen, píxeles empaquetados, reescalado
normal, muestreo de texturas clamped/edge y procesamiento de imágenes.
Tarjetas gráficas soportadas: Rage 128, Rage 128 GL, Rage XL/XC, Rage 128 Pro, Rage Fury MAXX,
y todas las tarjetas posteriores.



                    Extensión              Id de extensión              Funciones
            3D Volume Textures        GL_EXT_texture3D           glTexImage3DEXT
                                                                 BGR_EXT, BGRA_EXT (in
            BGRA Texture Format       GL_EXT_bgra
                                                                 glTexImage2D)
            Packed Pixels             GL_EXT_packed_pixels
            Normal Rescaling          GL_EXT_rescale_normal
                                      GL_EXT_separate_specular
            Separate Specular Color
                                      _color
            Texture Coord Edge
                                      SGIS_texture_edge_clamp
            Clamping
            Texture LOD Control       SGIS_texture_lod
            Draw Range Elements       EXT_draw_range_elements    glDrawRangeElements
                                      EXT_color_table,
                                      EXT_convolution,
                                      SGI_color_matrix,
            Image Processing Subset
                                      EXT_histogram,
                                      EXT_blend_color,
                                      EXT_blend_minmax
OpenGL 1.2.1

Publicada el 14 de octubre de 1998
OpenGL 1.2.1 fue un lanzamiento menor publicado depués de
OpenGL 1.2 (16 de marzo de 1998) el cual añadió multi-textura,
o unidades de textura, al canal de renderizado. Esto permitió
texturas múltiples que son combinadas por píxel durante la
rasterización.
Tarjetas gráficas soportadas: Radeon, Radeon Mobility, Radeon
7500 Mobility, Radeon 8500, Radeon 9000, Radeon 9200,
Radeon 9600, Radeon 9800, GeForce 3, GeForce 4Ti, GeForce
FX, y todas las tarjetas posteriores

           Extensión         Id de extensión           Funciones
                                               glActiveTextureARB,
   Multi-Texturing      SGIS_multitexture
                                               glClientActiveTextureARB
• OpenGL 1.3
• Publicada el 14 de agosto de 2001.
  OpenGL 1.3 añadió soporte para textura cubemap, múltiples
  texturas, multi-muestreo y operaciones de combinación de
  unidades de textura (añadir, combinar, dot3, border clamp).
  Tarjetas gráficas soportadas: Radeon 32/36, Radeon 64/7200,
  Radeon 7000, Radeo AIW, Radeon 7500, Radeon IGP 320M,
  Radeon IGP 345M, ES1000, Radeon 8500, Radeon 9000/Pro,
  Radeon 9100/9200/9250 (Pro & IGP), GeForce 3, GeForce 4Ti,
  GeForce FX, y todas las tarjetas posteriores.
• OpenGL 1.4
• Publicada el 24 de julio de 2002.
  OpenGL 1.4 añadió soporte de sombreado por
  hardware, coordenadas niebla, generación automática de
  mipmaps, y modos de textura adicionales.
  Tarjetas gráficas soportadas: Quadro DCC, Quadro4 380
  XGL, Quadro4 500XGL, 550XGL, Quadro4
  700XGL, 750XGL, 900XGL, 980XGL, y todas las tarjetas
  posteriores.
• OpenGL 1.5
• Publicada el 29 de julio de 2003.
  OpenGL 1.5 añadió soporte para objetos de búfer de vértice
  (VBOs), consultas de oclusión, y amplió las funciones de
  sombreado.
  Tarjetas gráficas soportadas: Radeon X800, Radeon
  9600, Radeon 9700, Radeon 9800, GeForce FX, y todas las
  tarjetas posteriores.
• OpenGL 2.0
• OpenGL 2.0 añadió soporte para un lenguaje ensamblador basado en GPU
  verdadero, llamado ARB (diseñado por el Architecture Review Board), que se
  convertiría en el estándar para vertex y fragment shaders. Las tarjetas
  publicadas con OpenGL 2.0 fueron las primeras en ofrecer shaders
  programables por el usuario.
• OpenGL 2.0 fue concebido por 3Dlabs para abordar las preocupaciones de que
  OpenGL estaba estancado y carecía de una dirección fuerte. 3Dlabs propuso
  una serie de importantes adiciones a la norma. La mayoría de estas fueron, en
  ese momento, rechazadas por el ARB o de otra manera nunca llegaron a
  realizarse en la forma que 3Dlabs propuso. Sin embargo, su propuesta de un
  lenguaje de sombreado de estilo C se completó con el tiempo, resultando en la
  formulación actual del GLSL (OpenGL Shading Language, también slang).Al
  igual que los lenguajes de sombreado estilo-ensamblador que trataba de
  sustituir, permite al programador sustituir los fixed-function vertex y el
  fragment pipe con shaders, aunque esta vez escritos en un lenguaje tipo C de
  alto nivel.
• El diseño de GLSL se destacó por hacer relativamente pocas concesiones a las
  limitaciones del hardware entonces disponible, lo que recordaba a la tradición
  anterior de OpenGL estableciendo un objetivo ambicioso, con visión de futuro
  para los aceleradores 3D en lugar de simplemente seguir el estado de
  hardware disponible actualmente. La última especificación OpenGL 2.016
  incluye soporte para GLSL.
• OpenGL 2.1

• El 2 de agosto de 2006 se publicó OpenGL 2.1. Siendo
  completamente compatible con las versiones
  anteriores, aporta además nuevas características como:
• Revisión 1.20 del OpenGL Shading Language (GLSL).
• Comandos que soportan la especificación de matrices no
  cuadradas.
• Objetos Pixel buffer para acelerar el tráfico de imágenes en
  los buffers en comandos
  como glTexImage2D y glReadPixels.
• Esta funcionalidad corresponde a la
  extensión ARB_pixel_buffer_object.Texturas sRGB.
• Esta funcionalidad corresponde a la
  extensión GL_EXT_texture_sRGB.
•   OpenGL 3.0

•   OpenGL 3.1
•   La versión 3.1 (Longs Peak Reloaded) fue publicada el 24 de marzo de 2009, y
    presenta una serie de características para hacer la API más conveniente de utilizar,
    además de las características orientadas al rendimiento:
•   Lenguaje de Sombreado OpenGL revisión 1.40 (GLSL)
•   Texture Buffer Objects - un tipo de nueva textura que contiene una matriz
    unidimensional de texels
•   Uniform Buffer Objects para compartir o actualñizar datos de forma rápida
•   Texturas normalizadas firmadas (rango ± 1,0)
•   Un mínimo de 16 unidades de textura accesibles por el Vertex Shader
•   Reinicio de primitiva
•   Instancias - dibujo de objetos en múltiples ocasiones a través de la reutilización de
    los vertex data
•   CopyBuffer API para copia rápida de datos, utilizada en conjunto con OpenCL
•   Con la liberación de la especificación OpenGL 3.1, también fue publicada una
    extensión de compatibilidad que permite a los desarrolladores acceder a la
    funcionalidad de OpenGL 1.X/2.X eliminada en OpenGL 3.1. En particular, se
    mantiene funcionalidad legacy para una amplia línea de soporte.
•   OpenGL 3.1

•   OpenGL 3.1
•   La versión 3.1 (Longs Peak Reloaded) fue publicada el 24 de marzo de 2009, y
    presenta una serie de características para hacer la API más conveniente de
    utilizar, además de las características orientadas al rendimiento:
•   Lenguaje de Sombreado OpenGL revisión 1.40 (GLSL)
•   Texture Buffer Objects - un tipo de nueva textura que contiene una matriz
    unidimensional de texels
•   Uniform Buffer Objects para compartir o actualñizar datos de forma rápida
•   Texturas normalizadas firmadas (rango ± 1,0)
•   Un mínimo de 16 unidades de textura accesibles por el Vertex Shader
•   Reinicio de primitiva
•   Instancias - dibujo de objetos en múltiples ocasiones a través de la reutilización
    de los vertex data
•   CopyBuffer API para copia rápida de datos, utilizada en conjunto con OpenCL
•   Con la liberación de la especificación OpenGL 3.1, también fue publicada una
    extensión de compatibilidad que permite a los desarrolladores acceder a la
    funcionalidad de OpenGL 1.X/2.X eliminada en OpenGL 3.1. En particular, se
    mantiene funcionalidad legacy para una amplia línea de soporte.
• OpenGL 3.2

• La versión 3.2 fue publicada el 3 de agosto de 2009.
  Incluye las siguientes características:
• Lenguaje de Sombreado OpenGL revisión 1.50 (GLSL)
• Soporte de Geometría Shader
• BGRA vértice componente de pedidos
• Fragmento Shader coordinar el control de convención
• Perfecta mapa cubo filtrado
• Fragmento de profundidad de sujeción
• Multisampled texturas y textura de las muestras para
  lugares específicos de la muestra
• Objetos de sincronización y cerca
• OpenGL 3.3

• OpenGL 3.3, simultáneamente lanzado con
  OpenGL 4.0 y complementada por un
  conjunto de nuevas extensiones ARB, porta
  tanta funcionalidad como es posible desde la
  especificación OpenGL 4.0 para su uso en la
  generación anterior de hardware GPU. Incluye
  GLSL 3.30.
• OpenGL 4.0
•   Tarjetas compatibles: Radeon HD serie 5000, nVidia GTX serie 400;
•   Características:19
•   OpenGL Shading Language versión 4.00 (GLSL)
•   Dos fases de sombreado que permiten a la GPU descargar el teselado
    geométrico de la CPU.
•   Per-shaders fragmento de la muestra y de sombreado programable
    posiciones fragmento de entrada para mayor calidad de representación y
    anti-aliasing de flexibilidad.
•   Subrutinas Shader para una flexibilidad de programación aumentada
    significativamente.
•   Separación del estado de textura y de los datos de textura mediante la
    adición de un nuevo tipo de objeto llamado sampler objetos.
•   Dibujo de los datos generados por el API de OpenGL o APIs externos, tales
    como OpenCL, sin intervención de la CPU.
•   Operaciones de 64-bit de coma flotante de doble precisión de sombreado
    y entradas / salidas para prestar mayor precisión y calidad.
•   Mejoras de rendimiento, tales como shaders de geometría en instancias,
    instancias matrices y una consulta de nuevo temporizador.
• OpenGL 4.1

• Tarjetas soportadas: Nvidia GeForce 400 series, Nvidia GeForce 500
  series, ATI Radeon HD 5000 series, AMD Radeon HD 6000 Series
• Esta nueva versión añade estas características adicionales a la
  especificación, muchas de las cuales ayudan a ponerla en
  consonancia con las de Direct3D 11:
• Lenguaje de sombreado OpenGL (GLSL) 4.1
• Compatibilidad completa con OpenGL para sistemas integrados
  (OpenGL ES) 2.0
• Reducción de tiempos de recompilación
• La capacidad de vincular los programas de forma individual a las
  cinco etapas programables (Vertex, Control de mosaico, Evaluación
  de el Teselado, la Geometría, y Fragmento)
• Mejoras a la coma flotante general de 64 bits compatible con
  agregado en OpenGL 4.0eral de 64 bits compatible con agregado en
  OpenGL 4.0
• OpenGL 4.2

• Tarjetas soportadas: Nvidia GeForce 400 series, Nvidia GeForce 500
  series, ATI Radeon HD 5000 series, AMD Radeon HD 6000 Series, ATI
  Radeon HD 7000 series
• Soporte para shaders con contadores atómicos y load/store/atomic
  read-modify-write operations en un único nivel de una textura.
• Capacidad de capturar geometría de la GPU en mosaico y dibujar
  varias instancias de una "transform feedback " para que los objetos
  complejos sean fácilmente replicados o cambiados de posición.
• OpenGL puede modificar ahora un subconjunto arbitrario de una
  textura comprimida sin necesidad de volver a descargar toda la
  textura a la GPU llevando esto a un mayor rendimiento.
• Soporte para empaquetar varios valores de 8 bits y 16 bits en un
  único valor de 32 bits, llevando a un procesamiento más eficiente
  del shader y presión reducida en la memoria y el ancho de banda.
OpenGL 4.3

•   201222 Tarjetas Soportadas: Nvidia GeForce 400 series, Nvidia GeForce 500 series, Nvidia GeForce
    600 series
•   Incluye la versión más actualizada de GLSL en su versión 4.30 (OpenGL Shading Language).
•   Cálculo de shaders que aprovechan el paralelismo de la GPU para todo lo relacionado con geometría
    o gráficos.
•   Almacenamiento en búfer de objetos Shader.
•   Consultas de parámetros de texturas para hallar los límites que las plataformas pueden tener para
    procesar las mismas.
•   Alta calidad de comprensión en texturas ETC2/EAC como característica estándar.
•   Compatibilidad total con las APIs de OpenGL ES 3.0.
•   Capacidades de depuración que permiten recibir mensajes de depuración mientras se desarrolla la
    aplicación.
•   Vistas de texturas para análisis de las mismas en diferentes formas sin replicación de datos.
•   Incrementa la seguridad de la memoria.
•   Una extensión multi-aplicación que añade robustez al sistema, e impide que las aplicaciones que
    provoquen un fallo y tengan que resetearse afecten a otras que estén en ejecución.
OpenGl Comparada con
                   directx de microsoft
• Si nos guiamos por la portabilidad, DirectX difícilmente
  supera a OpenGL, dada su gran dependencia con Windows
  y sus componentes. Fuera de este sistema
  operativo, solamente se encuentra implementada en la
  consola Xbox. En cambio, OpenGL es compatible no sólo
  con WindSows, sino que se utiliza en sistemas
  Unix, Linux, Macy hasta en consolas como PlayStation 3 y
  Nintendo Wii. En resumen: Exceptuando Windows y
  Xbox, todos los sistemas que proveen soporte para
  aceleración 3D han escogido a OpenGL. Por algo
  será, ¿No?. . Además, OpenGL fue diseñada para asegurar
  retrocompatibilidad. Es decir, la primera versión de OpenGL
  puede ser compilada y ejecutada por la última versión sin
  ningún problema.
• La diferencia principal es que DirectX es una
  API cuya plataforma se basa en lo que el
  hardware es capaz de realizar, mientras que
  OpenGL es un tanto más independiente. A su
  vez, de su implimentacion depende la
  administración de los recursos, algo que en
  DirectX corre por cuenta de la aplicación. Esto
  hace que sea más proponeso a sufrir los
  temidos errores de propagación (mejor
  conocidos como bugs).
lenguajes
• Fortran 90 OpenGL Bindings
• f90gl es una implementación de dominio público de los
  oficiales de Fortran 90 enlaces para OpenGL. Con los
  nuevos enlaces, un programador puede escribir Fortran
  que sigan los estándares de las aplicaciones gráficas
  que serán portátil en la mayoría de plataformas
  informáticas. La versión actual es la Versión 1.2.3 Esta
  versión implementa la interfaz para OpenGL 1.2, 1.2
  GLU, GLUT 3,7, y varias extensiones. Es compatible con
  varias estaciones de trabajo Unix y Windows
  95/98/NT. También es la interfaz de Fortran para Mesa.
• Java enlaces para OpenGL
• Los JOGL Java / OpenGL enlaces
   – El proyecto JOGL acoge la versión de desarrollo de Java ™
     de la unión de la API OpenGL (JSR-231), y está diseñado
     para proporcionar el hardware de gráficos compatibles 3D
     para aplicaciones escritas en Java. JOGL proporciona
     acceso completo a la API de OpenGL en el 1,3 a 3,0, 3,1 -
     3,3, ≥ 4,0, ES 1.x y especificación ES 2.x, así como casi
     todas las extensiones de proveedor. Se integra con el AWT
     y columpios widget, así como con kits de herramientas de
     ventanas personalizadas con la API de
     NativeWindow. Forma parte de un conjunto de tecnologías
     de código abierto iniciado por el Grupo de Tecnología de
     Juegos de Sun Microsystems. Por favor vea las demos
     JOGL para las ilustraciones de las técnicas avanzadas de
     OpenGL ahora es posible con la plataforma Java.
• Lightweight Java Game Library
Dirigido a programadores Java profesionales y
aficionados por igual con soporte para OpenGL,
OpenAL, gamepads, volante y Joysticks
• Java 3D (retenido SUN biblioteca modo de capas
   en OpenGL)
• Java 3D para Mac OS X
• OpenGL para Java (GL4Java)
• YAJOGLB (otro Java OpenGL Binding)
• JGL: una biblioteca de gráficos 3D para Java
• Perl OpenGL Bindings
• Perl OpenGL (POGL) Módulo es un binario Perl
  vinculante de OpenGL que soporta el procesamiento
  GPGPU.
• Perl enlaces OpenGL 0,64 - Módulo de Perl para
  mostrar datos en 3D usando OpenGL, GLU, GLUT y GLU
  GLXf es compatible y GLUT debe contar con el apoyo
  de hasta API versión 3
• OpenGL Perl, C y Puntos de Referencia de Python
• Pike OpenGL Bindings
• Pike tiene una interfaz nativa de OpenGL. Además de
  Pikes Pike apoyo GL también soporta GLU y GLUT.
• Python Bindings OpenGL
• PyOpenGL es una fuente multi-plataforma
  abierta Python vinculante a la norma API OpenGL
  proporciona 2-D y 3-D de dibujo gráfico.
  PyOpenGL apoya el GL, GLU, GLUT y bibliotecas.
  La biblioteca se puede utilizar con el Tkinter,
  wxPython, FxPy, y bibliotecas Win32GUI de
  ventanas (o casi cualquier biblioteca de ventanas
  que puede proporcionar un contexto OpenGL).
• PyGlut hace GLUT disponible en el intérprete de
  Python.
• Delphi Bindings
• OpenGL Delphi Bindings ( alemán )
• Ada OpenGL Bindings
• Ada bindings OpenGL soporta GL & GLU y GLUT.
• OpenGL y Visual Basic
• Programación OpenGL con Visual Basic
• Un control ActiveX de la aplicación de OpenGL
  1.1. para su uso con Visual Basic
• OpenGL y Visual Basic
• Visual Basic fragmentos de código y archivos
Proyectos construidos en OpenGl
• GruaGl
se trata de un proyecto realizado para la asignatura Diseño
Asistido Por Computador (DAC) de la Universidad de Granada.
El lenguaje de programación usado es C y la api OpenGl.
• Proyecto Dado en openGL con Mono
• Robot en opengl
• Sistema Solar en Opengl
• Como lo habiamos mencionado anteriormente en
  opengl es posible realizar todo tipo de graficos en 3d
  como por ejemplo un juego, y es justamente un juego
  muy sencillo pero antiguo pacman.
  Para este juego se emplearon cubos, esferas, triangulos
  y otros. Para empezar se preparó la plataforma del
  juego, acomodando cubos de distintas dimenciones
  para los caminos, luego se le dió forma a los
  "mounstritos" y se configuró su desplazamiento lo cual
  fué algo complicado de programar. También se
  acomodaron las esferas que se deben "comer".

Weitere ähnliche Inhalte

Ähnlich wie OpenGL: Historia y evolución de la API de gráficos 3D

Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)Igalia
 
Tarjeta Graficadora GPU
Tarjeta Graficadora GPUTarjeta Graficadora GPU
Tarjeta Graficadora GPULyna Trujillo
 
Clases de tarjetas de video y fabricantes
Clases de tarjetas de video y fabricantesClases de tarjetas de video y fabricantes
Clases de tarjetas de video y fabricantescarlos andres
 
Tarjeta graficadora gpu
Tarjeta graficadora gpuTarjeta graficadora gpu
Tarjeta graficadora gpujomanor74
 
GPUs para Científicos
GPUs para CientíficosGPUs para Científicos
GPUs para CientíficosAntonio Mora
 
Tarjeta graficadora gpu
Tarjeta graficadora gpuTarjeta graficadora gpu
Tarjeta graficadora gpuANDREA
 
Presentación1 oswaldo jara
Presentación1 oswaldo jaraPresentación1 oswaldo jara
Presentación1 oswaldo jarajohnfag
 
Presentación1 oswaldo jara
Presentación1 oswaldo jaraPresentación1 oswaldo jara
Presentación1 oswaldo jarajohnfag
 
Presentación1 oswaldo jara
Presentación1 oswaldo jaraPresentación1 oswaldo jara
Presentación1 oswaldo jarajohnfag
 
C:\Fakepath\Tarjetas Graficas Gpu
C:\Fakepath\Tarjetas Graficas Gpu C:\Fakepath\Tarjetas Graficas Gpu
C:\Fakepath\Tarjetas Graficas Gpu ECCI
 

Ähnlich wie OpenGL: Historia y evolución de la API de gráficos 3D (20)

Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
 
Open gl chica
Open gl chicaOpen gl chica
Open gl chica
 
Slide share software
Slide share softwareSlide share software
Slide share software
 
G P Un Vidia
G P Un VidiaG P Un Vidia
G P Un Vidia
 
Tarjetas de video 2014
Tarjetas de video 2014Tarjetas de video 2014
Tarjetas de video 2014
 
Tarjeta Graficadora GPU
Tarjeta Graficadora GPUTarjeta Graficadora GPU
Tarjeta Graficadora GPU
 
Clases de tarjetas de video y fabricantes
Clases de tarjetas de video y fabricantesClases de tarjetas de video y fabricantes
Clases de tarjetas de video y fabricantes
 
Tarjeta graficadora gpu
Tarjeta graficadora gpuTarjeta graficadora gpu
Tarjeta graficadora gpu
 
GPUs para Científicos
GPUs para CientíficosGPUs para Científicos
GPUs para Científicos
 
Tarjetas Graficadoras 2
Tarjetas Graficadoras 2Tarjetas Graficadoras 2
Tarjetas Graficadoras 2
 
Tarjeta graficadora gpu
Tarjeta graficadora gpuTarjeta graficadora gpu
Tarjeta graficadora gpu
 
Presentación1 oswaldo jara
Presentación1 oswaldo jaraPresentación1 oswaldo jara
Presentación1 oswaldo jara
 
Presentación1 oswaldo jara
Presentación1 oswaldo jaraPresentación1 oswaldo jara
Presentación1 oswaldo jara
 
Presentación1 oswaldo jara
Presentación1 oswaldo jaraPresentación1 oswaldo jara
Presentación1 oswaldo jara
 
Tarjetas Graficas Gpu
Tarjetas Graficas GpuTarjetas Graficas Gpu
Tarjetas Graficas Gpu
 
C:\Fakepath\Tarjetas Graficas Gpu
C:\Fakepath\Tarjetas Graficas Gpu C:\Fakepath\Tarjetas Graficas Gpu
C:\Fakepath\Tarjetas Graficas Gpu
 
Tarjetas Graficas Gpu
Tarjetas Graficas GpuTarjetas Graficas Gpu
Tarjetas Graficas Gpu
 
Tarjeta GráFica
Tarjeta GráFicaTarjeta GráFica
Tarjeta GráFica
 
TF Grupo N° 2- 2012
TF Grupo N° 2- 2012TF Grupo N° 2- 2012
TF Grupo N° 2- 2012
 
TF Grupo N° 2
TF Grupo N° 2TF Grupo N° 2
TF Grupo N° 2
 

OpenGL: Historia y evolución de la API de gráficos 3D

  • 2. OpenGl • 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 19922 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.
  • 3. Historia • En los años 1980 el desarrollo de software que fuese compatible con un amplio rango de hardware gráfico era un verdadero reto para los desarrolladores. Había que tratar con interfaces muy diferentes y escribir drivers específicos para cada tipo de hardware, resultando muy costoso; por ello, se subcontrataban equipos de programadores para agilizar el desarrollo. Dado que cada equipo trabajaba por separado en sus interfaces, se producía mucho código redundante. Además, era un proceso caro, por lo que varios grupos innovadores aceptaron el reto de encontrar un método mejor. • Al principio de los años 1990 SGI era un grupo de referencia en gráficos 3D para estaciones de trabajo. Suya era la API IRIS GL,10 considerada puntera en el campo y estándar de facto, llegando a eclipsar a PHIGS, basada en estándares abiertos. IRIS GL se consideraba más fácil de usar y, lo más importante, soportaba renderizado en modo inmediato. Además, PHIGS, aparte de su mayor dificultad, fue considerada inferior a IRIS GL respecto a funcionalidad y capacidad.
  • 4. • La competencia de SGI (Sun Microsystems, Hewlett-Packard e IBM, entre otros) fue capaz de introducir en el mercado hardware 3D compatible con el estándar PHIGS mediante extensiones. Esto fue reduciendo la cuota de mercado de SGI conforme iban entrando diferentes proveedores en el mercado. Por todo ello, en un intento de fortalecer su influencia en el mercado, SGI decidió convertir el estándar IRIS GL en un estándar abierto. • SGI observó que la API IRIS GL no podía ser abierta debido a conflictos de licencias y patentes; también contenía funciones no relevantes para los gráficos 3D como APIs para ventanas, teclado o ratón (en parte, porque fue desarrollada antes de la aparición del X Window System o de los sistemas NeWS de Sun). Además, mientras iba madurando el soporte del mercado para el nuevo estándar, se pretendía mantener los antiguos clientes mediante bibliotecas añadidas como Iris Inventor o Iris Performer.
  • 5. El resultado de todo lo anterior fue el lanzamiento del estándar OpenGL. • Algunos de los logros que se consiguieron fueron: • Estandarizar el acceso al hardware. • Trasladar a los fabricantes la responsabilidad del desarrollo de las interfaces con el hardware. • Delegar las funciones para ventanas al sistema operativo. • Con la variedad de hardware gráfico existente, lograr que todos hablasen el mismo lenguaje obtuvo un efecto importante, ofreciendo a los desarrolladores de software una plataforma de alto nivel sobre la que trabajar.
  • 6. • En 1992,11 SGI lideró la creación del OpenGL Architecture Review Board (OpenGL ARB), grupo de empresas que mantendría y extendería la especificación OpenGL en los años siguientes. OpenGL evolucionó desde IRIS GL, superando su problema de dependencia del hardware al ofrecer emulación software para aquellas características no soportadas por el hardware del que se dispusiese. Así, las aplicaciones podían utilizar gráficos avanzados en sistemas relativamente poco potentes. • En 1994 SGI barajó la posibilidad de lanzar un producto denominado OpenGL++, el cual incluía elementos como una API de scene-graph (basada presumiblemente en la tecnología de Performer). Dicha especificación fue divulgada entre unos pocos grupos interesados, pero nunca apareció finalmente como producto.12 • En 1995 Microsoft lanzó Direct3D, que se convertiría en el principal competidor de OpenGL. El 17 de diciembre de 199713 Microsoft y SGI iniciaron el proyecto Fahrenheit, esfuerzo cooperativo con el objetivo de unificar las interfaces de OpenGL y Direct3D (y añadir también una API scene-graph). En 1998 se uniría al proyecto Hewlett-Packard.14 Pese a tener un principio prometedor en estandarizar las APIs de gráficos 3D, debido a restricciones financieras en SGI y la falta general de apoyo por parte de la industria, fue finalmente abandonado en 1999.15
  • 7. Historia versiones • OpenGL 1.0 • Publicada en enero de 1992. La primera especificación de OpenGL fue publicada por Mark Segal y Kurt Akeley. • OpenGL 1.1 • Publicada en enero de 1997. OpenGL 1.1 se enfocó en el soporte de texturas y formatos de textura sobre hardware de GPU. Tarjetas gráficas soportadas: todas
  • 8. Extensión Id de extensión Funciones glVertexPointer, glColorPoi Vertex Arrays EXT_vertex_array nter, glNormalPointer Polygon Offsets (depth EXT_polygon_offset glPolygonOffset biasing) RGBA logical blending EXT_blend_logic_op glBlendFunc EXT_subtexture, Texture Copy and Sub-copy glTexSubImage1D/2D/3D EXT_copy_texture RGB, LUMINANCE, ALPHA, Texture Formats EXT_texture INTENSITY (in glTexImage2D) glGenTextures, Texture Objects EXT_texture_object glBindTextures
  • 9. OpenGL 1.2 Publicada el 16 de marzo de 1998. OpenGL 1.2 se enfocó en el soporte de texturas de volumen, píxeles empaquetados, reescalado normal, muestreo de texturas clamped/edge y procesamiento de imágenes. Tarjetas gráficas soportadas: Rage 128, Rage 128 GL, Rage XL/XC, Rage 128 Pro, Rage Fury MAXX, y todas las tarjetas posteriores. Extensión Id de extensión Funciones 3D Volume Textures GL_EXT_texture3D glTexImage3DEXT BGR_EXT, BGRA_EXT (in BGRA Texture Format GL_EXT_bgra glTexImage2D) Packed Pixels GL_EXT_packed_pixels Normal Rescaling GL_EXT_rescale_normal GL_EXT_separate_specular Separate Specular Color _color Texture Coord Edge SGIS_texture_edge_clamp Clamping Texture LOD Control SGIS_texture_lod Draw Range Elements EXT_draw_range_elements glDrawRangeElements EXT_color_table, EXT_convolution, SGI_color_matrix, Image Processing Subset EXT_histogram, EXT_blend_color, EXT_blend_minmax
  • 10. OpenGL 1.2.1 Publicada el 14 de octubre de 1998 OpenGL 1.2.1 fue un lanzamiento menor publicado depués de OpenGL 1.2 (16 de marzo de 1998) el cual añadió multi-textura, o unidades de textura, al canal de renderizado. Esto permitió texturas múltiples que son combinadas por píxel durante la rasterización. Tarjetas gráficas soportadas: Radeon, Radeon Mobility, Radeon 7500 Mobility, Radeon 8500, Radeon 9000, Radeon 9200, Radeon 9600, Radeon 9800, GeForce 3, GeForce 4Ti, GeForce FX, y todas las tarjetas posteriores Extensión Id de extensión Funciones glActiveTextureARB, Multi-Texturing SGIS_multitexture glClientActiveTextureARB
  • 11. • OpenGL 1.3 • Publicada el 14 de agosto de 2001. OpenGL 1.3 añadió soporte para textura cubemap, múltiples texturas, multi-muestreo y operaciones de combinación de unidades de textura (añadir, combinar, dot3, border clamp). Tarjetas gráficas soportadas: Radeon 32/36, Radeon 64/7200, Radeon 7000, Radeo AIW, Radeon 7500, Radeon IGP 320M, Radeon IGP 345M, ES1000, Radeon 8500, Radeon 9000/Pro, Radeon 9100/9200/9250 (Pro & IGP), GeForce 3, GeForce 4Ti, GeForce FX, y todas las tarjetas posteriores.
  • 12. • OpenGL 1.4 • Publicada el 24 de julio de 2002. OpenGL 1.4 añadió soporte de sombreado por hardware, coordenadas niebla, generación automática de mipmaps, y modos de textura adicionales. Tarjetas gráficas soportadas: Quadro DCC, Quadro4 380 XGL, Quadro4 500XGL, 550XGL, Quadro4 700XGL, 750XGL, 900XGL, 980XGL, y todas las tarjetas posteriores.
  • 13. • OpenGL 1.5 • Publicada el 29 de julio de 2003. OpenGL 1.5 añadió soporte para objetos de búfer de vértice (VBOs), consultas de oclusión, y amplió las funciones de sombreado. Tarjetas gráficas soportadas: Radeon X800, Radeon 9600, Radeon 9700, Radeon 9800, GeForce FX, y todas las tarjetas posteriores.
  • 14. • OpenGL 2.0 • OpenGL 2.0 añadió soporte para un lenguaje ensamblador basado en GPU verdadero, llamado ARB (diseñado por el Architecture Review Board), que se convertiría en el estándar para vertex y fragment shaders. Las tarjetas publicadas con OpenGL 2.0 fueron las primeras en ofrecer shaders programables por el usuario. • OpenGL 2.0 fue concebido por 3Dlabs para abordar las preocupaciones de que OpenGL estaba estancado y carecía de una dirección fuerte. 3Dlabs propuso una serie de importantes adiciones a la norma. La mayoría de estas fueron, en ese momento, rechazadas por el ARB o de otra manera nunca llegaron a realizarse en la forma que 3Dlabs propuso. Sin embargo, su propuesta de un lenguaje de sombreado de estilo C se completó con el tiempo, resultando en la formulación actual del GLSL (OpenGL Shading Language, también slang).Al igual que los lenguajes de sombreado estilo-ensamblador que trataba de sustituir, permite al programador sustituir los fixed-function vertex y el fragment pipe con shaders, aunque esta vez escritos en un lenguaje tipo C de alto nivel. • El diseño de GLSL se destacó por hacer relativamente pocas concesiones a las limitaciones del hardware entonces disponible, lo que recordaba a la tradición anterior de OpenGL estableciendo un objetivo ambicioso, con visión de futuro para los aceleradores 3D en lugar de simplemente seguir el estado de hardware disponible actualmente. La última especificación OpenGL 2.016 incluye soporte para GLSL.
  • 15. • OpenGL 2.1 • El 2 de agosto de 2006 se publicó OpenGL 2.1. Siendo completamente compatible con las versiones anteriores, aporta además nuevas características como: • Revisión 1.20 del OpenGL Shading Language (GLSL). • Comandos que soportan la especificación de matrices no cuadradas. • Objetos Pixel buffer para acelerar el tráfico de imágenes en los buffers en comandos como glTexImage2D y glReadPixels. • Esta funcionalidad corresponde a la extensión ARB_pixel_buffer_object.Texturas sRGB. • Esta funcionalidad corresponde a la extensión GL_EXT_texture_sRGB.
  • 16. OpenGL 3.0 • OpenGL 3.1 • La versión 3.1 (Longs Peak Reloaded) fue publicada el 24 de marzo de 2009, y presenta una serie de características para hacer la API más conveniente de utilizar, además de las características orientadas al rendimiento: • Lenguaje de Sombreado OpenGL revisión 1.40 (GLSL) • Texture Buffer Objects - un tipo de nueva textura que contiene una matriz unidimensional de texels • Uniform Buffer Objects para compartir o actualñizar datos de forma rápida • Texturas normalizadas firmadas (rango ± 1,0) • Un mínimo de 16 unidades de textura accesibles por el Vertex Shader • Reinicio de primitiva • Instancias - dibujo de objetos en múltiples ocasiones a través de la reutilización de los vertex data • CopyBuffer API para copia rápida de datos, utilizada en conjunto con OpenCL • Con la liberación de la especificación OpenGL 3.1, también fue publicada una extensión de compatibilidad que permite a los desarrolladores acceder a la funcionalidad de OpenGL 1.X/2.X eliminada en OpenGL 3.1. En particular, se mantiene funcionalidad legacy para una amplia línea de soporte.
  • 17. OpenGL 3.1 • OpenGL 3.1 • La versión 3.1 (Longs Peak Reloaded) fue publicada el 24 de marzo de 2009, y presenta una serie de características para hacer la API más conveniente de utilizar, además de las características orientadas al rendimiento: • Lenguaje de Sombreado OpenGL revisión 1.40 (GLSL) • Texture Buffer Objects - un tipo de nueva textura que contiene una matriz unidimensional de texels • Uniform Buffer Objects para compartir o actualñizar datos de forma rápida • Texturas normalizadas firmadas (rango ± 1,0) • Un mínimo de 16 unidades de textura accesibles por el Vertex Shader • Reinicio de primitiva • Instancias - dibujo de objetos en múltiples ocasiones a través de la reutilización de los vertex data • CopyBuffer API para copia rápida de datos, utilizada en conjunto con OpenCL • Con la liberación de la especificación OpenGL 3.1, también fue publicada una extensión de compatibilidad que permite a los desarrolladores acceder a la funcionalidad de OpenGL 1.X/2.X eliminada en OpenGL 3.1. En particular, se mantiene funcionalidad legacy para una amplia línea de soporte.
  • 18. • OpenGL 3.2 • La versión 3.2 fue publicada el 3 de agosto de 2009. Incluye las siguientes características: • Lenguaje de Sombreado OpenGL revisión 1.50 (GLSL) • Soporte de Geometría Shader • BGRA vértice componente de pedidos • Fragmento Shader coordinar el control de convención • Perfecta mapa cubo filtrado • Fragmento de profundidad de sujeción • Multisampled texturas y textura de las muestras para lugares específicos de la muestra • Objetos de sincronización y cerca
  • 19. • OpenGL 3.3 • OpenGL 3.3, simultáneamente lanzado con OpenGL 4.0 y complementada por un conjunto de nuevas extensiones ARB, porta tanta funcionalidad como es posible desde la especificación OpenGL 4.0 para su uso en la generación anterior de hardware GPU. Incluye GLSL 3.30.
  • 20. • OpenGL 4.0 • Tarjetas compatibles: Radeon HD serie 5000, nVidia GTX serie 400; • Características:19 • OpenGL Shading Language versión 4.00 (GLSL) • Dos fases de sombreado que permiten a la GPU descargar el teselado geométrico de la CPU. • Per-shaders fragmento de la muestra y de sombreado programable posiciones fragmento de entrada para mayor calidad de representación y anti-aliasing de flexibilidad. • Subrutinas Shader para una flexibilidad de programación aumentada significativamente. • Separación del estado de textura y de los datos de textura mediante la adición de un nuevo tipo de objeto llamado sampler objetos. • Dibujo de los datos generados por el API de OpenGL o APIs externos, tales como OpenCL, sin intervención de la CPU. • Operaciones de 64-bit de coma flotante de doble precisión de sombreado y entradas / salidas para prestar mayor precisión y calidad. • Mejoras de rendimiento, tales como shaders de geometría en instancias, instancias matrices y una consulta de nuevo temporizador.
  • 21. • OpenGL 4.1 • Tarjetas soportadas: Nvidia GeForce 400 series, Nvidia GeForce 500 series, ATI Radeon HD 5000 series, AMD Radeon HD 6000 Series • Esta nueva versión añade estas características adicionales a la especificación, muchas de las cuales ayudan a ponerla en consonancia con las de Direct3D 11: • Lenguaje de sombreado OpenGL (GLSL) 4.1 • Compatibilidad completa con OpenGL para sistemas integrados (OpenGL ES) 2.0 • Reducción de tiempos de recompilación • La capacidad de vincular los programas de forma individual a las cinco etapas programables (Vertex, Control de mosaico, Evaluación de el Teselado, la Geometría, y Fragmento) • Mejoras a la coma flotante general de 64 bits compatible con agregado en OpenGL 4.0eral de 64 bits compatible con agregado en OpenGL 4.0
  • 22. • OpenGL 4.2 • Tarjetas soportadas: Nvidia GeForce 400 series, Nvidia GeForce 500 series, ATI Radeon HD 5000 series, AMD Radeon HD 6000 Series, ATI Radeon HD 7000 series • Soporte para shaders con contadores atómicos y load/store/atomic read-modify-write operations en un único nivel de una textura. • Capacidad de capturar geometría de la GPU en mosaico y dibujar varias instancias de una "transform feedback " para que los objetos complejos sean fácilmente replicados o cambiados de posición. • OpenGL puede modificar ahora un subconjunto arbitrario de una textura comprimida sin necesidad de volver a descargar toda la textura a la GPU llevando esto a un mayor rendimiento. • Soporte para empaquetar varios valores de 8 bits y 16 bits en un único valor de 32 bits, llevando a un procesamiento más eficiente del shader y presión reducida en la memoria y el ancho de banda.
  • 23. OpenGL 4.3 • 201222 Tarjetas Soportadas: Nvidia GeForce 400 series, Nvidia GeForce 500 series, Nvidia GeForce 600 series • Incluye la versión más actualizada de GLSL en su versión 4.30 (OpenGL Shading Language). • Cálculo de shaders que aprovechan el paralelismo de la GPU para todo lo relacionado con geometría o gráficos. • Almacenamiento en búfer de objetos Shader. • Consultas de parámetros de texturas para hallar los límites que las plataformas pueden tener para procesar las mismas. • Alta calidad de comprensión en texturas ETC2/EAC como característica estándar. • Compatibilidad total con las APIs de OpenGL ES 3.0. • Capacidades de depuración que permiten recibir mensajes de depuración mientras se desarrolla la aplicación. • Vistas de texturas para análisis de las mismas en diferentes formas sin replicación de datos. • Incrementa la seguridad de la memoria. • Una extensión multi-aplicación que añade robustez al sistema, e impide que las aplicaciones que provoquen un fallo y tengan que resetearse afecten a otras que estén en ejecución.
  • 24. OpenGl Comparada con directx de microsoft • Si nos guiamos por la portabilidad, DirectX difícilmente supera a OpenGL, dada su gran dependencia con Windows y sus componentes. Fuera de este sistema operativo, solamente se encuentra implementada en la consola Xbox. En cambio, OpenGL es compatible no sólo con WindSows, sino que se utiliza en sistemas Unix, Linux, Macy hasta en consolas como PlayStation 3 y Nintendo Wii. En resumen: Exceptuando Windows y Xbox, todos los sistemas que proveen soporte para aceleración 3D han escogido a OpenGL. Por algo será, ¿No?. . Además, OpenGL fue diseñada para asegurar retrocompatibilidad. Es decir, la primera versión de OpenGL puede ser compilada y ejecutada por la última versión sin ningún problema.
  • 25. • La diferencia principal es que DirectX es una API cuya plataforma se basa en lo que el hardware es capaz de realizar, mientras que OpenGL es un tanto más independiente. A su vez, de su implimentacion depende la administración de los recursos, algo que en DirectX corre por cuenta de la aplicación. Esto hace que sea más proponeso a sufrir los temidos errores de propagación (mejor conocidos como bugs).
  • 26. lenguajes • Fortran 90 OpenGL Bindings • f90gl es una implementación de dominio público de los oficiales de Fortran 90 enlaces para OpenGL. Con los nuevos enlaces, un programador puede escribir Fortran que sigan los estándares de las aplicaciones gráficas que serán portátil en la mayoría de plataformas informáticas. La versión actual es la Versión 1.2.3 Esta versión implementa la interfaz para OpenGL 1.2, 1.2 GLU, GLUT 3,7, y varias extensiones. Es compatible con varias estaciones de trabajo Unix y Windows 95/98/NT. También es la interfaz de Fortran para Mesa.
  • 27. • Java enlaces para OpenGL • Los JOGL Java / OpenGL enlaces – El proyecto JOGL acoge la versión de desarrollo de Java ™ de la unión de la API OpenGL (JSR-231), y está diseñado para proporcionar el hardware de gráficos compatibles 3D para aplicaciones escritas en Java. JOGL proporciona acceso completo a la API de OpenGL en el 1,3 a 3,0, 3,1 - 3,3, ≥ 4,0, ES 1.x y especificación ES 2.x, así como casi todas las extensiones de proveedor. Se integra con el AWT y columpios widget, así como con kits de herramientas de ventanas personalizadas con la API de NativeWindow. Forma parte de un conjunto de tecnologías de código abierto iniciado por el Grupo de Tecnología de Juegos de Sun Microsystems. Por favor vea las demos JOGL para las ilustraciones de las técnicas avanzadas de OpenGL ahora es posible con la plataforma Java.
  • 28. • Lightweight Java Game Library Dirigido a programadores Java profesionales y aficionados por igual con soporte para OpenGL, OpenAL, gamepads, volante y Joysticks • Java 3D (retenido SUN biblioteca modo de capas en OpenGL) • Java 3D para Mac OS X • OpenGL para Java (GL4Java) • YAJOGLB (otro Java OpenGL Binding) • JGL: una biblioteca de gráficos 3D para Java
  • 29. • Perl OpenGL Bindings • Perl OpenGL (POGL) Módulo es un binario Perl vinculante de OpenGL que soporta el procesamiento GPGPU. • Perl enlaces OpenGL 0,64 - Módulo de Perl para mostrar datos en 3D usando OpenGL, GLU, GLUT y GLU GLXf es compatible y GLUT debe contar con el apoyo de hasta API versión 3 • OpenGL Perl, C y Puntos de Referencia de Python • Pike OpenGL Bindings • Pike tiene una interfaz nativa de OpenGL. Además de Pikes Pike apoyo GL también soporta GLU y GLUT.
  • 30. • Python Bindings OpenGL • PyOpenGL es una fuente multi-plataforma abierta Python vinculante a la norma API OpenGL proporciona 2-D y 3-D de dibujo gráfico. PyOpenGL apoya el GL, GLU, GLUT y bibliotecas. La biblioteca se puede utilizar con el Tkinter, wxPython, FxPy, y bibliotecas Win32GUI de ventanas (o casi cualquier biblioteca de ventanas que puede proporcionar un contexto OpenGL). • PyGlut hace GLUT disponible en el intérprete de Python.
  • 31. • Delphi Bindings • OpenGL Delphi Bindings ( alemán ) • Ada OpenGL Bindings • Ada bindings OpenGL soporta GL & GLU y GLUT. • OpenGL y Visual Basic • Programación OpenGL con Visual Basic • Un control ActiveX de la aplicación de OpenGL 1.1. para su uso con Visual Basic • OpenGL y Visual Basic • Visual Basic fragmentos de código y archivos
  • 32. Proyectos construidos en OpenGl • GruaGl se trata de un proyecto realizado para la asignatura Diseño Asistido Por Computador (DAC) de la Universidad de Granada. El lenguaje de programación usado es C y la api OpenGl. • Proyecto Dado en openGL con Mono • Robot en opengl • Sistema Solar en Opengl
  • 33. • Como lo habiamos mencionado anteriormente en opengl es posible realizar todo tipo de graficos en 3d como por ejemplo un juego, y es justamente un juego muy sencillo pero antiguo pacman. Para este juego se emplearon cubos, esferas, triangulos y otros. Para empezar se preparó la plataforma del juego, acomodando cubos de distintas dimenciones para los caminos, luego se le dió forma a los "mounstritos" y se configuró su desplazamiento lo cual fué algo complicado de programar. También se acomodaron las esferas que se deben "comer".