Escolar Documentos
Profissional Documentos
Cultura Documentos
OpenGL (Open Graphics Library) es una especicacin estndar que dene una API multilenguaje y
multiplataforma para escribir aplicaciones que produzcan grcos 2D y 3D. La interfaz consiste en ms de 250
funciones diferentes que pueden usarse para dibujar escenas tridimensionales complejas a partir de primitivas
geomtricas simples, tales como puntos, lneas y tringulos. Fue desarrollada originalmente por Silicon Graphics Inc. (SGI) en 1992[2] y se usa ampliamente en CAD,
realidad virtual, representacin cientca, visualizacin
de informacin y simulacin de vuelo. Tambin se usa en
desarrollo de videojuegos, donde compite con Direct3D
en plataformas Microsoft Windows.
Especicacin
Fundamentalmente OpenGL es una especicacin, es decir, un documento que describe un conjunto de funciones 2 Diseo
y el comportamiento exacto que deben tener. Partiendo
de ella, los fabricantes de hardware crean implementa- OpenGL tiene dos propsitos esenciales:
ciones, que son bibliotecas de funciones que se ajustan
a los requisitos de la especicacin, utilizando acelera Ocultar la complejidad de la interfaz con las difecin hardware cuando es posible. Dichas implementaciorentes tarjetas grcas, presentando al programador
nes deben superar unos tests de conformidad para que
una API nica y uniforme.
sus fabricantes puedan calicar su implementacin como
conforme a OpenGL y para poder usar el logotipo ocial
Ocultar las diferentes capacidades de las diversas
de OpenGL.
plataformas hardware, requiriendo que todas las implementaciones soporten la funcionalidad completa
Hay implementaciones ecientes de OpenGL para Mac
de OpenGL (utilizando emulacin software si fuese
OS, Microsoft Windows, GNU/Linux, varias platafornecesario).
mas Unix y PlayStation 3. Existen tambin varias implementaciones en software que permiten ejecutar aplicaciones que dependen de OpenGL sin soporte de acele- El funcionamiento bsico de OpenGL consiste en acepracin hardware. Es destacable la biblioteca de software
tar primitivas tales como puntos, lneas y polgonos, y
libre / cdigo abierto Mesa 3D, una API de grcos sin convertirlas en pxeles. Este proceso es realizado por una
aceleracin hardware y completamente compatible con pipeline grca conocida como Mquina de estados de
OpenGL. Sin embargo, para evitar los costes de la li- OpenGL.[8] La mayor parte de los comandos de OpenGL
cencia requerida para ser denominada formalmente como bien emiten primitivas a la pipeline grca o bien conuna implementacin de OpenGL, arma ser simplemente guran cmo la pipeline procesa dichas primitivas. Hasta
una API muy similar.
la aparicin de la versin 2.0 cada etapa de la pipeline
La especicacin OpenGL era revisada por el OpenGL
Architecture Review Board (ARB), fundado en 1992. El
ARB estaba formado por un conjunto de empresas interesadas en la creacin de una API consistente y ampliamente disponible. Microsoft, uno de los miembros fundadores, abandon el proyecto en 2003.
ejecutaba una funcin prejada, resultando poco congurable. A partir de la versin 2.0 algunas etapas son programables usando un lenguaje de programacin llamado
GLSL.
OpenGL es una API basada en procedimientos de bajo nivel que requiere que el programador dicte los pasos
El 21 de septiembre de 2006 se anunci que el con- exactos necesarios para renderizar una escena. Esto control de OpenGL pasara del ARB al Grupo Khronos.[3] trasta con las APIs descriptivas, donde un programador
1
slo debe describir la escena y puede dejar que la biblioteca controle los detalles para representarla. El diseo de
bajo nivel de OpenGL requiere que los programadores
conozcan en profundidad la pipeline grca, a cambio de
darles libertad para implementar algoritmos grcos novedosos.
HISTORIA
Muchas tarjetas grcas actuales proporcionan una funcionalidad superior a la bsica aqu expuesta, pero las
nuevas caractersticas generalmente son mejoras de esta
pipeline bsica ms que cambios revolucionarios de ella.
3. Rasterizacin, o conversin de la informacin previa en pxeles. Los polgonos son representados con 4 Historia
el color adecuado mediante algoritmos de interpolacin.
En los aos 1980 el desarrollo de software que fuese compatible
con un amplio rango de hardware grco era un
4. Operaciones por fragmentos o segmentos, como acverdadero
reto para los desarrolladores. Haba que tratar
tualizaciones segn valores venideros o ya almacecon
interfaces
muy diferentes y escribir drivers especnados de profundidad y de combinaciones de colocos
para
cada
tipo
de hardware, resultando muy costoso;
res, entre otros.
por ello, se subcontrataban equipos de programadores pa5. Por ltimo, los fragmentos son volcados en el Frame ra agilizar el desarrollo. Dado que cada equipo trabajaba
buer.
por separado en sus interfaces, se produca mucho cdi-
3
go redundante. Adems, era un proceso caro, por lo que mo una API de scene-graph (basada presumiblemente en
varios grupos innovadores aceptaron el reto de encontrar la tecnologa de Performer). Dicha especicacin fue diun mtodo mejor.
vulgada entre unos pocos grupos interesados, pero nunca
[12]
Al principio de los aos 1990 SGI era un grupo de re- apareci nalmente como producto.
ferencia en grcos 3D para estaciones de trabajo. Suya
era la API IRIS GL,[10] considerada puntera en el campo
y estndar de facto, llegando a eclipsar a PHIGS, basada
en estndares abiertos. IRIS GL se consideraba ms fcil de usar y, lo ms importante, soportaba renderizado
en modo inmediato. Adems, PHIGS, aparte de su mayor
dicultad, fue considerada inferior a IRIS GL respecto a
funcionalidad y capacidad.
4
5.1.4
5 VERSIONES
OpenGL 1.3
OpenGL 1.4
OpenGL 1.5
5.2
OpenGL 2.0
5.4
OpenGL 4.0
OpenGL 3.1
5
5.3.2 OpenGL 3.2
La versin 3.2 fue publicada el 3 de agosto de 2009. Incluye las siguientes caractersticas:
OpenGL Shading Language versin 1.50 (GLSL)
Soporte de Geometra Shader
BGRA vrtice componente de pedidos
Fragmento Shader coordinar el control de convencin
Perfecta mapa cubo ltrado
Fragmento de profundidad de sujecin
Multisampled texturas y textura de las muestras para
lugares especcos de la muestra
Objetos de sincronizacin y cerca
OpenGL 4.0
Caractersticas:[19]
OpenGL Shading Language versin 4.00 (GLSL)
Dos fases de sombreado que permiten a la GPU descargar el teselado geomtrico de la CPU.
Per-shaders fragmento de la muestra y de sombreado programable posiciones fragmento de entrada
para mayor calidad de representacin y anti-aliasing
de exibilidad.
Subrutinas Shader para una exibilidad de programacin aumentada signicativamente.
Separacin del estado de textura y de los datos de
textura mediante la adicin 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
intervencin de la CPU.
5 VERSIONES
Operaciones de 64-bit de coma otante de doble
precisin de sombreado y entradas / salidas para
prestar mayor precisin y calidad.
Mejoras de rendimiento, tales como shaders de geometra en instancias, instancias matrices y una con5.4.3 OpenGL 4.3
sulta de nuevo temporizador.
5.4.1
OpenGL 4.1
Mejoras a la coma otante general de 64 bits compatible con agregado en OpenGL 4.0
5.4.2
OpenGL 4.2
Documentacin
La popularidad de OpenGL se debe en parte a su detallada documentacin ocial. El OpenGL ARB ha publicado una serie de manuales actualizados conforme la API
iba evolucionando. Son fcilmente reconocibles (y conocidos) por el color de sus tapas:
Las especicaciones para la mayor parte de las extensiones pueden encontrarse en el registro ocial de
extensiones.[24]
8 Bibliotecas de utilidades
El Libro Verde - The Green Book: Programming Se han programado varias bibliotecas externas que aaOpenGL for the X Window System. ISBN 0-201- den caractersticas no disponibles en el propio OpenGL.
48359-9
Algunas de ellas son:
Libro sobre el interfaz X11 y GLUT.
El Libro Alpha (de tapa blanca) - The Alpha Book:
OpenGL Programming for Windows 95 and Windows NT. ISBN 0-201-40709-4
Libro sobre el interfaz de OpenGL en plataformas de Microsoft Windows.
Para OpenGL 2.0 y posteriores:
El Libro Naranja - The Orange Book: The
OpenGL Shading Language. ISBN 0-321-33489-2
GLU: Ofrece funciones de dibujo de alto nivel basadas en primitivas de OpenGL. Las funciones de
GLU se reconocen fcilmente pues todas empiezan
con el prejo glu.
GLUT: API multiplataforma que facilita una rudimentaria funcionalidad para el manejo de ventanas
e interaccin por medio de teclado y ratn.
GLUI: Interfaz de usuario basada en GLUT; proporciona elementos de control tales como botones,
cajas de seleccin y spinners. Es independiente del
sistema operativo, sustentndose en GLUT para manejar los elementos dependientes del sistema.
Extensiones
11 VASE TAMBIN
C#: Tao[26] es un framework para .NET que incluye
OpenGL entre otras bibliotecas multimedia.
D: vase[27] y.[28]
Embarcadero Delphi: Dot.[29]
Fortran: f90gl[30] soporta OpenGL 1.2, GLU 1.2,
GLUT 3.7.
Gambas: gb.opengl[31]
Genie
Lazarus-FreePascal: LCL/GLUT[32]
Java: JOGL[33] y LWJGL[34] entre otros; vase.[35]
Lisp: vase.[36]
Perl: vase.
[37]
11 Vase tambin
GLSL - Lenguaje de alto nivel de shaders para
OpenGL
JOGL (Java OpenGL) - Biblioteca para usar
OpenGL en Java
OpenGL ES - Biblioteca para sistemas integrados
WebGL - Especicacin estndar para desplegar
grcos en 3D en navegadores web
OpenWF - Interfaz de abstraccin de bajo nivel de
hardware para sistemas de ventana compuesto
OpenSL ES - API multiplataforma para audio 2D y
3D acelerada por hardware
OpenML - Ambiente de programacin multiplataforma, para capturar, transportar, procesar, desplegar, y sincronizar medios digitales
OpenKODE - APIs nativos para los juegos en dispositivos de mano y las aplicaciones de medios
Comparacin entre Direct3D y OpenGL
10
Para una lista completa y actualizada de los miembros del proyecto, vanse las listas de miembros,[43] 11.3 Aplicaciones OpenGL
contribuyentes[44] y acadmicos[45] del Grupo
Khronos.[46]
Anexo:Lista de Aplicaciones que usan OpenGL
12
Referencias
13 Enlaces externos
Sitio web ocial de OpenGL
Sitio web de SGI sobre OpenGL
OpenGL en el Open Directory Project
Grupo Khronos
10
14
14
14.1
OpenGL Fuente: http://es.wikipedia.org/wiki/OpenGL?oldid=79053233 Colaboradores: Deibiz xxl, Moriel, ManuelGR, Zwobot, Pirenne, Javier Carro, Yearofthedragon, Triku, Jynus, Sms, Jsanchezes, Daniel G., Jag2k4, Cinabrium, Rembiapo pohyiete (bot), Orgullobot,
RobotQuistnix, Unf, Superzerocool, Chobot, Sixstone, Adrruiz, FlaBot, Vitamine, Jmaslibre, YurikBot, GermanX, Gothmog, Otermin,
Gtz, Usrwp, Paintman, BOTpolicia, CEM-bot, Toranks, Willicab, Montgomery, Thijs!bot, Will vm, Jugones55, TXiKiBoT, Jotatsu, Reibot, Bedwyr, Biasoli, AlnoktaBOT, Dusan, VolkovBot, Aliamondano, Matdrodes, Shooke, AlleborgoBot, 3coma14, Muro Bot, El Pantera,
BotMultichill, SieBot, Danielba894, DaBot, Bigsus-bot, BOTarate, Suhrvivor, Mafores, Locos epraix, Jarisleif, Farisori, Leonpolanco, Poco a poco, Alexbot, Jmtorres, CestBOT, AVBOT, David0811, LucienBOT, DumZiBoT, Linfocito B, Cgarciagl, Luckas-bot, LordboT,
DavidGL, Marioxcc, ArthurBot, Manuelt15, Jkbw, AstaBOTh15, Otamay, EmBOTellado, TiriBOT, Codename, TorQue Astur, Rro4785,
Timotein, SamuraiBot, GrouchoBot, EmausBot, Entalpia2, Kakahuete, ChuispastonBot, MetroBot, Invadibot, SebrevBOT, W0lyllo, Elvisor, Flashlack, ProfesorFavalli, Zerabat, AdrianMaire, Addbot y Annimos: 64
14.2
Images
Archivo:Translation_arrow.svg Fuente: http://upload.wikimedia.org/wikipedia/commons/2/2a/Translation_arrow.svg Licencia: CCBY-SA-3.0 Colaboradores: Este imagen vectorial fue creado con Inkscape Artista original: Jesse Burgheimer
Archivo:Yes_check.svg Fuente: http://upload.wikimedia.org/wikipedia/commons/f/fb/Yes_check.svg Licencia: Public domain Colaboradores: Trabajo propio Artista original: SVG by Gregory Maxwell, simplied by Sarang
Archivo:_Pipeline_OpenGL_(es).png Fuente: http://upload.wikimedia.org/wikipedia/commons/6/64/Pipeline_OpenGL_%28es%29.
png Licencia: CC BY 2.5 Colaboradores: Image created by me. Artista original: Bedwyr
14.3
Content license