25
Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Embed Size (px)

Citation preview

Page 1: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 1

Herramientas y bibliotecas para gráficas

M.I.A Daniel Alejandro García López

Page 2: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 2

Software de Gráficas

• Paquetes generales de programación• Paquetes de aplicaciones especificas

Page 3: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 3

Paquete de programación

• Ofrece un amplio conjunto de funciones gráficas que se pueden utilizar en un lenguaje de programación de alto nivel.

• Generar componentes de la imagen( líneas, polígonos, circunferencias, etc.)

• Determinar valores de color e intensidad, seleccionar vistas y aplicar transformaciones.

Page 4: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 4

Paquete de aplicaciones especificas

• Diseñado para personas que no son programadores.

• La interfaz para la rutinas de gráficas de tales paquetes permite un fácil uso.

• Existen paquetes que están diseñados para utilizarse con especificaciones de coordenadas cartesianas.

Page 5: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 5

Breve historia del software gráfico

• 1977: primer sistema para gráficos 2D (Core Graphic System)

• 1984: primer API industrial desarrollada por Silicon Graphics para gráficos 3D (Graphics Library - GL)

• 1985: primer estándar oficial para un API de gráficos 2D (Graphical Kernel System - GKS)

Page 6: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 6

Breve historia del software gráfico

• 1988: primer estándar oficial para un API de gráficos 3D (PHIGS)

• 1992: estándar que integra PHIGS con el X-windows (PEX)

• 1993: primer estándar industrial portable a diversas plataformas hardware (OpenGL)

• 1993: API de alto nivel sobre OpenGL que sigue paradigmas similares a PHIGS (OpenInventor)

Page 7: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 7

Breve historia del software gráfico

• 1995: Microsoft lanza una API propietaria para competir con OpenGL (Direct3D/DirectX)

• 1997: desarrollado a partir de OpenInventor surge el primer lenguaje para gráficos 3D y realidad virtual en la web (Virtual Reality Modelling Language - VRML)

Page 8: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 8

Breve historia del software gráfico

• 1999: Java ya tiene su API: Java3D• 2002-2003: extensiones de OpenGL y

DirectX para hardware gráfico programable (GPU)

• 2003+: lenguajes de alto nivel para GPU: Cg (NVIDIA), HLSL(Microsoft), OpenGL 2.0

• JOGL “interface” de Java con OpenGL 2.0

Page 9: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 9

OpenGL

Page 10: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 10

OpenGL

• Desarrollada originalmente por Silicon Graphics Inc.

• Especificación estándar para escribir aplicaciones gráficas

• Multilenguaje• Multiplataforma• Gráficos 2D y 3D• Usado en CAD, Realidad Virtual,

Simulación.

Page 11: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 11

OpenGL

• Su función consiste en aceptar primitivas tales como puntos, líneas y polígonos y convertirlas a pixeles.

• El proceso es realizado por una pipeline gráfica conocida como máquina de estados de OpenGL

• Esta basada en procedimientos de bajo nivel, contrario a las API’s descriptivas.

Page 12: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 12

Propósitos de OpenGL

• Ocultar la complejidad de la interfaz con las diferentes tarjetas gráficas.

• Ocultar las diferentes capacidades de las diversas plataformas de hardware, aunque las implementaciones utilicen emulación.

Page 13: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 13

Bibliotecas de utilidades

• Añaden características no disponibles en el propio OpenGL

• GLU: Ofrece funciones de dibujo de alto nivel basadas en primitivas de OpenGL

• GLUT: API multiplataforma que facilita una rudimentaria funcionalidad para el manejo de ventanas e interacción por medio de teclado y ratón

Page 14: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 14

Biblioteca de utilidades

• GLUI: Interfaz de usuario basada en GLUT; proporciona elementos de control tales como botones, cajas de selección y spinners.

Page 15: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 15

Direct3D

Page 16: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 16

Direct3D

• Es parte de DirectX• Propiedad de Microsoft• Compuesto por dos APIS: modo inmediato

y modo retenido.• Se comunica directamente con los drivers

de pantalla

Page 17: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 17

Propósito de Direct3D

• Facilitar el manejo y trazado de entidades gráficas elementales, como líneas, polígonos y texturas

• Efectuar transformaciones geométricas• Proveer una interfaz con el hardware de

aceleración gráfica

Page 18: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 18

Modos de presentación

• Modo exclusivo: Ninguna otra aplicación podrá hacer uso de la pantalla

• Modo en ventana: Se muestra en una ventana. Colabora con el GDI.

Page 19: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 19

Java3D

Page 20: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 20

Java3D

• Es un proyecto que permite crear entornos tridimensionales en el lenguaje Java.

• Corre sobre OpenGL o Direct3D• Es una extensión del JDK 2 de Java• Proporciona una colección de

constructores de alto nivel para crear y manipular geometrías 3D

• Permite diseñar la escena basándose en objetos geométricos, y no en triángulos

Page 21: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 21

Propósito de Java3D

• Proporcionar un amplio conjunto de utilidades que permitan crear mundos en 3D interesantes

• Proporcionar un paradigma de programación orientado a objeto de alto nivel para permitir a los desarrolladores generar sofisticadas aplicaciones y applets de forma rápida.

Page 22: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 22

Propósitos de Java3D

• Proporcionar soporte a cargadores en tiempo de ejecución. Esto permite que Java3D se adapte a un gran número de formatos de ficheros, como pueden ser formatos específicos de distintos fabricantes de CAD, formatos de intercambio o VRML.

Page 23: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 23

DirectX vs OpenGL

• Proporciona gráficos y funcionalidad de audio

• Enfoque orientado a objetos de C++

• Tiene soporte para los controladores

• Es para plataformas de windows.

• Mejor rendimiento• Es complejo de aprender

• Proporciona solo funcionalidad de gráficos

• Usado en diferentes lenguajes de procedimientos

• Es poco el soporte de los controladores

• Es independiente de las plataformas

• Rendimiento promedio• Es mas fácil su aprendizaje

Page 24: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 24

OpenGL vs Java3D

• Funcionalidad solo para gráficos

• Enfoque de procedimientos

• Soporte pobre de controladores

• Independiente de plataforma

• Mejor rendimiento• Mas fácil aprendizaje

• Funcionalidad solo para graficos

• Enfoque orientado a objetos de Java

• Soporte pobre de controladores

• Independiente de plataforma• Menor rendimientos• Más fácil aprendizaje• Corre sobre OpenGL o

DirectX

Page 25: Page 1 Herramientas y bibliotecas para gráficas M.I.A Daniel Alejandro García López

Page 25

Otras API’s propietarias

• Glide desarrollado por 3dfx• QuickDraw 3D• CUDA: conjunto de herramientas de

desarrollo creadas por nVidia que permiten a los programadores usar una variación del lenguaje de programación C para codificar algoritmos en GPUs de nVidia.