Introducción a OpenGL Mª del Carmen Santos.

Slides:



Advertisements
Presentaciones similares
integrantes Avalos Aguilar María Cristina
Advertisements

Diseño y Animación en la Educación Presentado por: Roger Brandao Juan Bermúdez Francisco Bravo Antony Domínguz.
SISTEMAS OPERATIVOS.
Sistemas de Graficación
MAC OS.... CONCEPTOS GENERALES
Tecnologías para desarrollo de aplicaciones web. Un caso de uso
Herramientas y bibliotecas para gráficas
Informática accesible para todo mundo.
Virtual PC.
Jorge A.Collado, BCS. M.A.Ed.
Java Binding for the OpenGL API Unidad III. ¿Qué es OpenGL? Open GL es un entorno de desarrollo portable de aplicaciones gráficas interactivas en 2D y.
Sistemas Operativos El sistema operativo es el encargado de coordinar todas las actividades del computador, todos los datos que entren o salgan desde el.
SISTEMAS OPERATIVOS DE RED
INTERFAZ DE ACCES DISEÑO DE BASE DE DATOS
SISTEMAS DE DISEÑO ASISTIDO POR COMPUTADORA
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
TRADUCTOR DE UN PROGRAMA
Programas informáticos. Software Se denomina software al conjunto de programas y procedimientos necesarios para hacer posible la realización de una tarea.
DISEÑO DE LA INTERFAZ DE USUARIO
Conforme a su cronología
Unidad 6 (1ª parte) TEORÍA DE SSOO MANTENIMIENTO.
SISTEMAS OPERATIVOS EN LOS QUE FUNCIONA
COMPLEMENTOS DE INSTALACION DE SOFTWARE API´s y Complementos Plug-ins.
Integrantes: Daniel Peña Alfredo Zuñiga
ASOCIACION UNIVERSIDAD PRIVADA SAN JUAN BAUTISTA FACULTAD DE COMUNICACIÓN Y CIENCIAS ADMINISTRATIVAS ESCUELA PROFESIONAL DE ADMINISTRACION DE NEGOCIOS.
TIPOS DE SOFTWARE Se denomina software a un programa, equipamiento lógico o soporte lógico necesario para hacer posible la realización de una tarea con.
SISTEMAS OPERATIVOS EQUIPO 9: GRUPO: Luna Rodríguez Diana Alejandra
Desarrollo de aplicaciones para ambientes distribuidos
Los Sistemas Operativos
Windows 8 Windows 8: Es la versión actual del sistema operativo de Microsoft Windows, producido por Microsoft para su uso en computadoras personales, incluidas.
SISTEMAS OPERATIVOS.
LENGUAJES DE PROGRAMACIÓN
Graficacion.
GPUs Rayco González Sicilia Microprocesadores para Comunicaciones 5º ETSIT.
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
OFIMATICA EMPRESARIAL I
SISTEMAS OPERATIVOS. Cómo trabaja un SO Qué es el SO El sistema operativo (SO) es el software del sistema destinados a la realización de algunas tareas.
Por: Ana Karina Andonegui Peña. Un sistema operativo de red (Network Operating System) es un componente software de una computadora que tiene como objetivo.
Supongamos que un usuario desea escribir un informe e imprimirlo en una impresora conectada. Para realizar esta tarea, se precisa una aplicación de procesamiento.
Sistemas Operativos.
II QUIMESTRE PARCIAL II
Sistemas Operativos.
Términos y Conceptos Básicos
Sistemas Operativos Presentado Por: Lina Kreisberger Nancy Urbano Laura Cabezas Jhon Gonzalez.
Zavaleta Nolasco Karina Rechy Villareal Sandra Grupo:309 Equipo: 04 Profesora: Gabriela Pichardo.
SISTEMAS OPERATIVOS PRESENTADO POR: JOHANN SEBASTIAN PENAGOS.
TIPOS DE SISTEMAS OPERATIVOS
INTRODUCCION. Microsoft es la empresa fabricante de los distintos Sistemas o plataformas operativas conocidas como Windows los cuales nos han permitido.
DISPOSITIVOS MOVILES.
ESCUELA NORMAL PARA EDUCADORA ‘’PROFR. SERAFIN CONTRERAZ MANZO’’
MARIANA PRECIADO VILLA TELECOMUNICACIONES 11º3
SISTEMAS OPERATIVOS.
UNITEC NEGOCIOS ELECTRÓNICOS ”DESARROLLO DE SOFTWARE ”
Photoshop.
María Camila Restrepo C. Mantener la Operatividad del sistema
INTRODUCCIÓN A MICROSOFT WINDOWS XP LIC. SAIDYS JIMÉNEZ QUIROZ ÁREA DE TECNOLOGÍA E INFORMÁTICA CESCOJ2011.
Omar de Jesús Rosales hernández
SISTEMAS OPERATIVOS WINDOWS. Un sistema operativo es el programa o conjunto de programas que efectúan la gestión de los procesos básicos de un sistema.
Presentado por: Kelly Johana Gallego Soto Rosa Reyes Estrada.
TECNICO EN SISTEMAS NUMERO DE FICHA:
 Un dispositivo móvil es aquel aparato pequeño que puede estar conectado a una red sea permanente o intermitente pueden ser:  Teléfono móvil  GPS 
Evelin Ramos Cabrera 1° B
Sistemas operativos.
VI. EVALUACIÓN DE LOS RECURSOS
Instituto de Ciencias y Humanidades Tabasco. El software Coordinar el uso del hardware Coordinar el uso del hardware Ejercer el control Programas de aplicación.
 Es un software que actúa de interfaz entre los dispositivos de hardware y los programas usados por el usuario para manejar un computador. [1] Es responsable.
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Aplicación web de tipo Ambiente Educativo Virtual, un sistema de gestión de cursos, de distribución libre, que ayuda a los educadores a crear comunidades.
Herramientas de Office. Que es Office Microsoft Office es una suite ofimática que abarca el mercado completo en Internet e interrelaciona aplicaciones.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Transcripción de la presentación:

Introducción a OpenGL Mª del Carmen Santos

Índice 1. Introducción 2. ¿Qué es OpenGL? 3. Historia 4. Características de OpenGL 5. Arquitectura de OpenGL 6. Bibliotecas relacionadas con OpenGL 7. Aplicaciones 8. Conclusiones

1. Introducción La informática gráfica es la parte de la informática que se encarga de la representación de gráficas en el ordenador. OpenGL fue la primera librería gráfica que abordo el uso eficiente de esos recursos, así como la estandarización de los procedimientos de la generación de gráficos.

1. Introducción Actualmente es un estándar sobre gráficos por computadora, uno de los más prestigiosos y utilizados del mundo.

2. ¿Qué es OpenGL? Open Graphics Library OpenGL es una especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D Y 3D. Desarrollada por Silicon Graphics Inc. (SGI) Su nombre viene del ingles Open Graphics Library

2. ¿Qué es OpenGL? Existen implementaciones eficientes de OpenGL suministradas por fabricantes para Mac Os Microsoft Windows Linux Plataformas Unix PlayStation

2. ¿Qué es OpenGL? La especificación OpenGL era revisada por el OpenGL Architecture Review Board (ARB), fundado en 1992. ARB estaba formado por un nutrido conjunto de empresas interesadas en la creación de una API consistente y ampliamente disponible.

2. ¿Qué es OpenGL? Formaban el grupo destacadas empresas: Silicon Graphics Compaq IBM Intel Microsoft Apple Sun Microsystems…

2. ¿Qué es OpenGL? El comité ARB se encarga de gestionar el estándar OpenGL para que vaya adoptando nuevas tecnologías. Cuando una compañía desarrolla una nueva tecnología se la presenta al ARB. Si este lo acepta, se añade como extensión propia de esa compañía para que se pueda utilizar en OpenGL.

2. ¿Qué es OpenGL? OpenGL se utiliza en campos como: CAD Realidad virtual Representación científica y de información Simulación de vuelo Desarrollo de videojuegos…

3. Historia Antes de la aparición de OpenGL, muchos fabricantes tenían diferentes bibliotecas gráficas, esto hacia que hubiera que tratar con interfaces muy diferentes y escribir drivers específicos. Se subcontrataban equipos de programadores para solventar esto, produciendo código redundante y que la portabilidad de aplicaciones de una plataforma a otra consumiera demasiado tiempo y entrañara dificultad.

3. Historia Al principio de los años 1990 SGI era un grupo de referencia en gráficos 3D para estaciones de trabajo. Pero este estándar no era abierto, pero aun así su, cuota de mercado era alta, ya que era considerado un estándar puntero y facilidad de uso.

3. Historia La competencia de SGI fue capaz de introducir en el mercado hardware 3D compatible con otro estándar abierto. Esto hizo reducir su cuota de mercado y en un intento de fortalecer su influencia en el mercado, decidió convertir el estándar en un estándar abierto.

3. Historia SGI lideró la creación de OpenGL Architecture Review Board (OpenGL ARB), grupo de empresas que mantendría y extendería la especificación OpenGL. 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.

3. Historia La segunda versión de OpenGL es en realidad la séptima revisión desde el lanzamiento de la versión 1.0. El 2 de agosto de 2006 se publicó OpenGL 2.1. Siendo compatible con las versiones anteriores, además aporta nuevas características entre las que destacan:

3. Historia Sombreado programable Se pueden aplicar sombreados sobre diferentes renderizados y generar distintos resultados que se almacena en buffers. La aplicación de texturas no está condicionada por su tamaño, no tiene por que ser potencia de dos. Se pueden aplicar patrones sobre las dos caras de las primitivas geométricas

3. Historia Destacar como competidor principal de OpenGL se debe mencionar a Microsoft Direct 3D, que aunque solo esté disponible para sistemas Windows goza de una gran aceptación entre los fabricantes

4. Características de OpenGL OpenGL está enfocado a la creación de contenido visual para su volcado sobre un framebuffer que luego será mostrado en pantalla. OpenGL basa su funcionamiento en una serie de modos configurables y la ejecución de una serie de primitivas de dibujo que no son más que la realización de segmentos, polígonos, puntos o rectángulos de píxeles.

4. Características de OpenGL Los comandos OpenGL se organizan en secuencias y su procesamiento se realiza siempre en el orden en que se reciben, aunque puede producirse un retraso entre la ejecución de un comando y la representación de sus efectos.

4. Características de OpenGL OpenGL proporciona mecanismos para el control directo de las operaciones fundamentales en el trabajo con gráficos en 2 y 3 dimensiones, incluyendo: Tratamiento de luces Métodos de anti - aliasing …etc.

4. Características de OpenGL El ámbito de operación de OpenGL llega hasta el framebuffer pero en ningún caso más allá. Es decir, queda bajo la responsabilidad del sistema sobre que se ejecuta la aplicación el control de las ventanas de la aplicación, del volcado del framebuffer al monitor.

5. Arquitectura de OpenGL OpenGL implementa una arquitectura cliente servidor, donde un programa solicita comandos y dichos comandos son interpretados y procesados por el sistema OpenGL (servidor). No es necesario que el servidor se sitúe en el mismo ordenador que el cliente, permitiendo a la especificación OpenGL ser “transparente a la red”.

5. Arquitectura de OpenGL 5.1. OpenGL como una máquina de estado OpenGL es una máquina de estado. Existen ciertas variables de estado de la máquina como el color, por ejemplo, que determinan el estado de la máquina

5. Arquitectura de OpenGL Un buen número de variables de estado se refieren a modos que pueden ser habilitados o deshabilitados con los comandos : glEnable() glDisable()

5. Arquitectura de OpenGL Además de los modos, las variables de estado almacenan valores que pueden obtener: glGetBooleanv() glGetPonterv() …etc glGetDoublev() glGetFloatv() glGetIntegerv()

5. Arquitectura de OpenGL Es posible almacenar colecciones de variables de estado en pilas con los métodos: glPushAttrib() o glPushClientAttrib y para recuperarlas después glPopAttrib() o glPopClientAttrib

5. Arquitectura de OpenGL 5.2. Flujo de renderización de OpenGL La mayoría de las implementaciones de OpenGL implementan un orden de operaciones idéntico, una serie de etapas de procesamiento denominado flujo de renderización de OpenGL ( OpenGL rendering pipeline)

5. Arquitectura de OpenGL Flujo de renderización de OpenGL

5. Arquitectura de OpenGL No es una definición estricta ni obligatoria, pero proporciona indicaciones bastante fiables sobre el orden de las operaciones en OpenGL. Indicar que el flujo de datos de la información geométrica es distinto que el flujo de la información de píxeles. La segunda parte del proceso es común para ambos tipos.

5. Arquitectura de OpenGL Flujo de renderización Display lists Según el modo seleccionado ( geométrica o píxeles), una serie de datos a mostrar pueden ser mostrados inmediatamente cuando son creados o bien almacenarlos para mostrarlos con posterioridad.

5. Arquitectura de OpenGL Evaluadores Las primitivas geométricas están definidas en última instancia como un conjunto de vértices. Las curvas paramétricas y las superficies están definidas por puntos de control y funciones polinómicas. Los evaluadores proporcionan los mecanismos para obtener los vértices utilizados para representar las superficies a partir de los puntos de control

5. Arquitectura de OpenGL Operaciones Per - vertex Antes de poder procesar la información geométrica los vértices debe ser convertidos en primitivas. Es en esta fase donde se procesa la aplicación de texturas, calculando las zonas a mostrar y su posición. Las modificaciones debidas a la iluminación también son procesadas en esta fase.

5. Arquitectura de OpenGL Ensamblado de primitivas En esta fase deben calcularse los puntos que por su posición quedan fuera de la imagen visible, esto es aquella información geométrica que no debe ser renderizada. También debe calcularse las intersecciones entre primitivas y se realiza el procesamiento de la perspectiva.

5. Arquitectura de OpenGL Operaciones sobre píxeles La información de píxeles es procesada de manera diferente. Ensamblado de texturas Las aplicaciones OpenGL pueden aplicar imágenes de texturas sobre los objetos geométricos para proporcionarles una apariencia más realista.

5. Arquitectura de OpenGL Rasterización La rasterización es la conversión de los datos, tanto geométricos como de píxeles, en fragmentos. Cada cuadro es un fragmento que se corresponde con un pixel en el framebuffer. Para esta conversión es necesario tener en cuenta los vértices, las líneas, las intersecciones, los tamaños de puntos… etc.

5. Arquitectura de OpenGL Operaciones sobre fragmentos Una vez que todas las operaciones anteriores han sido realizadas y como último paso antes del volcado de los fragmentos al framebuffer, es necesario realizar una serie de operaciones que pueden alterar distintos fragmentos.

5. Arquitectura de OpenGL 5.3. Invarianza en OpenGL Debido a que OpenGL no es una especificación exacta a nivel de píxel no está garantizada la coincidencia entre dos imágenes producidas por diferentes implementaciones de OpenGL. La invarianza está expresada en la especificación OpenGL por el cumplimiento de varias reglas.

6. Bibliotecas relacionadas con OpenGL Existen una serie de bibliotecas para facilitar el trabajo con OpenGL: GLU (OpenGL Utility Library) Crear matrices, visualizar superficies y cuadriculación de polígonos. Esta biblioteca suele estar incluida en las implementaciones OpenGL y sus métodos son fácilmente reconocibles porque comienzan por el prefijo glu.

6. Bibliotecas relacionadas con OpenGL GLX Y WGL GLX da soporte para máquinas que utilicen X Windows System y permite realizar todos los procesos gráficos relacionados con las ventanas de la aplicación. WGL es el equivalente para sistemas Microsoft

6. Bibliotecas relacionadas con OpenGL AUX La biblioteca de funciones AUX fue desarrollada en la etapa inicial de desarrollo de OpenGL por SGI para servir de apoyo a la creación de pequeños programas de demostración. Actualmente está declarada obsoleta y ya no está ni soportada ni actualizada.

6. Bibliotecas relacionadas con OpenGL OpenGL Utility Toolkit (GLUT) Sistema de ventanas, independiente del sistema usado. Ofrece una interfaz común para múltiples plataformas para el manejo de ventanas, buffers, renderización de texto, entrada por teclado, menús.

7. Aplicaciones Existen múltiples de aplicaciones para las que OpenGL ha servido como base. Aplicaciones desarrolladas en diferentes plataformas: Windows Unix / Linux Mac Os Java Sistemas embebidos A continuación se mencionan algunas aplicaciones desarrollados por OpenGL:

7. Aplicaciones Simulación (Windows) Aerofly Cloth - Sim Simulación de control aéreo Simulación en Tiempo real de ropa

7. Aplicaciones Simulación (Linux) Dex X- Vision Desarrollo, análisis y visualización de múltiples cuerpos. Visualización y animación de datos

7. Aplicaciones PinBall Chess Commander Juegos (Windows) Juego del PinBall Juego de Ajedrez

7. Aplicaciones FollBilliard khunPhan Juegos (Linux) Simulación física del juego del billar Puzzle

7. Aplicaciones Ciencia y Análisis (Windows) Great Stella MVE Estudio de poliedros Visualización en 3D de datos médicos

7. Aplicaciones Ciencia y Análisis (Linux) Visit Medit Visualización y parametrización de múltiples datos. Visualización científica

8. Conclusiones OpenGL es una buena elección para generación de efectos visuales, escenas, etc, debido a su portabilidad, estandarización y potencia gráfica. OpenGL esta pasando a segundo plano ante los nuevos programas de diseño que realizan tareas automáticamente. Se prevee que con la versión 2.0 se produzca un relanzamiento.

Bibliografía OpenGL Programming Guide OpenGL Programming Guide, Second Edition. Addison Wesley. Mark Segal, Kurt Akeley. The OpenGL Graphics System: A Specification, 2004. Wright, Richard S.; Lipchak, Benjamin. OpenGL, 1ª Ed. Anaya Multimedia. http://www.opengl.org/ http://www.sgi.com/