Herramientas y bibliotecas para gráficas
Post on 25-Feb-2016
53 Views
Preview:
DESCRIPTION
Transcript
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
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
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
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
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
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
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
OpenGL
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
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
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
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
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
Direct3D
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
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
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
Java3D
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
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
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
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
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
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.
top related