Você está na página 1de 8

INSTITUTO TECNOLOGICO SUPERIOR DE ZONGOLICA CAMPUS TEZONAPA

PEREZ CORTEZ MARCOS

LI GENARO GARCIA MARTINEZ

INVESTIGACION OPEN GL

INTRODUCCION
OpenGL (Open Graphics Library) es una especificacin estndar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan grficos 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. OpenGL fue desarrollada originalmente por Silicon Graphics Inc. (SGI) en 1992 y se usa ampliamente en CAD, realidad virtual, representacin cientfica, visualizacin de informacin y simulacin de vuelo. Tambin se usa en desarrollo de videojuegos, donde compite con Direct3D en plataformas Microsoft Windows. Fundamentalmente OpenGL es una especificacin, es decir, un documento que describe un conjunto de funciones y el comportamiento exacto que deben tener. Partiendo de ella, los fabricantes de hardware crean implementaciones, que son bibliotecas de funciones que se ajustan a los requisitos de la especificacin, utilizando aceleracin hardware cuando es posible. Dichas implementaciones deben superar unos test de conformidad para que sus fabricantes puedan calificar su implementacin como conforme a OpenGL y para poder usar el logotipo oficial de OpenGL. Hay implementaciones eficientes de OpenGL para Mac OS, Microsoft Windows, GNU/Linux, varias plataformas Unix y PlayStation 3. Existen tambin varias implementaciones en software que permiten ejecutar aplicaciones que dependen de OpenGL sin soporte de aceleracin hardware. Es destacable la biblioteca de software libre / cdigo abierto Mesa 3D, una API de grficos sin aceleracin hardware y completamente compatible con OpenGL. Sin embargo, para evitar los costes de la licencia requerida para ser denominada formalmente como una implementacin de OpenGL, afirma ser simplemente una API muy similar.

La especificacin 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. El 21 de septiembre de 2006 se anunci que el control de OpenGL pasara del ARB al Grupo Khronos.3 Con ello se intentaba mejorar el marketing de OpenGL y eliminar las barreras entre el desarrollo de OpenGL y OpenGL ES.4 ARB se convirti dentro de Khronos en el OpenGL ARB Working Group.5 El subgrupo de Khronos que gestiona la especificacin de OpenGL se denomina OpenGL ARB Working Group.6 Para una relacin de los miembros que componen el OpenGL ARB Working Group, vase el apartado Miembros del Grupo Khronos. El gran nmero de empresas con variados intereses que han pasado tanto por el antiguo ARB como por el grupo actual han hecho de OpenGL una API de propsito general con un amplio rango de posibilidades. Mark Segal y Kurt Akeley fueron los autores de la especificacin original de OpenGL. Chris Frazier fue el editor de la versin 1.1. Jon Leech ha editado las versiones desde 1.2 hasta la presente 3.0.7 Diseo OpenGL tiene dos propsitos esenciales: Ocultar la complejidad de la interfaz con las diferentes tarjetas grficas, presentando al programador una API nica y uniforme. Ocultar las diferentes capacidades de las diversas plataformas hardware, requiriendo que todas las implementaciones soporten la funcionalidad completa de OpenGL (utilizando emulacin software si fuese necesario). El funcionamiento bsico de OpenGL consiste en aceptar primitivas tales como puntos, lneas y polgonos, y convertirlas en pxeles. Este proceso es realizado por una pipeline grfica conocida como Mquina de estados de OpenGL.8 La mayor parte de los comandos de OpenGL bien emiten primitivas a la pipeline grfica o bien configuran cmo la pipeline procesa dichas primitivas. Hasta la aparicin de
3

la versin 2.0 cada etapa de la pipeline ejecutaba una funcin prefijada, resultando poco configurable. 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 exactos necesarios para rende rizar una escena. Esto contrasta con las APIs descriptivas, donde un programador 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 grfica, a cambio de darles libertad para implementar algoritmos grficos novedosos. OpenGL ha influido en el desarrollo de las tarjetas grficas, promocionando UN nivel bsico de funcionalidad que actualmente es comn en el hardware comercial; algunas de esas contribuciones son: Primitivas bsicas de puntos, lneas y polgonos rasterizados. Una pipeline de transformacin e iluminacin. Z-buffering. Mapeado de texturas. Alpha blending.

Una descripcin somera del proceso en la pipeline grfica podra ser Evaluacin, si procede, de las funciones polinomiales que definen ciertas entradas, como las superficies NURBS, aproximando curvas y la geometra de la superficie. Operaciones por vrtices, transformndolos, iluminndolos segn su material y recortando partes no visibles de la escena para producir un volumen de visin. Rasterizacin, o conversin de la informacin previa en pxeles. Los polgonos son representados con el color adecuado mediante algoritmos de interpolacin.

Operaciones por fragmentos o segmentos, como actualizaciones segn valores venideros o ya almacenados de profundidad y de combinaciones de colores, entre otros. Por ltimo, los fragmentos son volcados en el Frame buffer. Muchas tarjetas grficas 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.

DESARROLLO
En los aos 1980 el desarrollo de software que fuese compatible con un amplio rango de hardware grfico era un verdadero reto para los desarrolladores. Haba que tratar con interfaces muy diferentes y escribir drivers especficos 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 produca mucho cdigo redundante. Adems, era un proceso caro, por lo que varios grupos innovadores aceptaron el reto de encontrar un mtodo mejor. Al principio de los aos 1990 SGI era un grupo de referencia en grficos 3D para estaciones de trabajo. Suya era la API IRIS GL, 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 rende rizado en modo inmediato. Adems, 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 estndar 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 estndar IRIS GL en un estndar abierto. SGI observ que la API IRIS GL no poda ser abierta debido a conflictos de licencias y patentes; tambin contena funciones no relevantes para los grficos 3D como APIs para ventanas, teclado o ratn (en parte, porque fue desarrollada antes de la aparicin del X Window System o de los sistemas News de Sun). Adems, mientras iba madurando el soporte del mercado para el nuevo estndar, se pretenda mantener los antiguos clientes mediante bibliotecas aadidas como Iris Inventor o Iris Performer. El resultado de todo lo anterior fue el lanzamiento del estndar OpenGL.
6

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 grfico 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 creacin del OpenGL Architecture Review Board (OpenGL ARB), grupo de empresas que mantendra y extendera la especificacin OpenGL en los aos siguientes. OpenGL evolucion desde IRIS GL, superando su problema de dependencia Del hardware al ofrecer emulacin software para aquellas caractersticas no soportadas por el hardware Del que se dispusiese. As, las aplicaciones podan utilizar grficos avanzados en sistemas relativamente poco potentes. En 1994 SGI baraj la posibilidad de lanzar un producto denominado OpenGL++, el cual inclua elementos como una API de scene-graph (basada presumiblemente en la tecnologa de Performer). Dicha especificacin fue divulgada entre unos pocos grupos interesados, pero nunca apareci finalmente como producto. En 1995 Microsoft lanz Direct3D, que se convertira 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 aadir tambin una API scene-graph). En 1998 se unira al proyecto Hewlett-Packard.14 Pese a tener un principio prometedor en estandarizar las APIs de grficos 3D, debido a restricciones financieras en SGI y la falta general de apoyo por parte de la industria, fue finalmente abandonado en 1999.

CONCLUSION Mi conclusion sobre OpenGL (Open Graphics Library) es una especificacin estndar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan grficos 2D y 3D. Es una interfaz que 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. Su lanzamiento inicial fue en 1992, esta programado en C y su ultima versin es 4.4

BIBLIOGRAFIA http://www.opengl.org/