1 / 25

Herramientas y bibliotecas para gráficas

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.

donnel
Download Presentation

Herramientas y bibliotecas para gráficas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Software de Gráficas • Paquetes generales de programación • Paquetes de aplicaciones especificas

  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.

  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.

  5. Breve historia del software gráfico • 1977: primer sistema para gráficos 2D (CoreGraphicSystem) • 1984: primer API industrial desarrollada por SiliconGraphics para gráficos 3D (GraphicsLibrary - GL) • 1985: primer estándar oficial para un API de gráficos 2D (GraphicalKernelSystem - GKS)

  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)

  7. Breve historia del software gráfico • 1995: Microsoft lanza una API propietaria para competir con OpenGL (Direct3D/DirectX) • 1997: desarrollado a partir de OpenInventorsurge el primer lenguaje para gráficos 3D y realidad virtual en la web (Virtual RealityModellingLanguage - VRML)

  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), OpenGL2.0 • JOGL “interface” de Java con OpenGL 2.0

  9. OpenGL

  10. OpenGL • Desarrollada originalmente por SiliconGraphics Inc. • Especificación estándar para escribir aplicaciones gráficas • Multilenguaje • Multiplataforma • Gráficos 2D y 3D • Usado en CAD, Realidad Virtual, Simulación.

  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.

  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.

  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

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

  15. Direct3D

  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

  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

  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.

  19. Java3D

  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

  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.

  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.

  23. DirectX vs OpenGL 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 • 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

  24. OpenGL vs Java3D 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 • Funcionalidad solo para gráficos • Enfoque de procedimientos • Soporte pobre de controladores • Independiente de plataforma • Mejor rendimiento • Mas fácil aprendizaje

  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.

More Related