herramientas y bibliotecas para gráficas
DESCRIPTION
Herramientas y bibliotecas para gráficas. M.I.A Daniel Alejandro García López. Software de Gráficas. Paquetes generales de programación Paquetes de aplicaciones especificas. Paquete de programación. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/1.jpg)
Page 1
Herramientas y bibliotecas para gráficas
M.I.A Daniel Alejandro García López
![Page 2: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/2.jpg)
Page 2
Software de Gráficas
• Paquetes generales de programación• Paquetes de aplicaciones especificas
![Page 3: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/3.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/4.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/5.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/6.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/7.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/8.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/9.jpg)
Page 9
OpenGL
![Page 10: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/10.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/11.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/12.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/13.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/14.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/15.jpg)
Page 15
Direct3D
![Page 16: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/16.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/17.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/18.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/19.jpg)
Page 19
Java3D
![Page 20: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/20.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/21.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/22.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/23.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/24.jpg)
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: Herramientas y bibliotecas para gráficas](https://reader036.vdocuments.pub/reader036/viewer/2022062411/5681692f550346895de07812/html5/thumbnails/25.jpg)
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.