Topic outline

  • Visualización e Interacción Gráfica (2009)

    visualizacion_e_interaccion_grafica.jpg   

         

    Profesores

    Andrés Iglesias Prieto

    Akemi Gálvez Tomida

    Departamento de Matemática Aplicada y Ciencias de la Computación

     

     

     

     

     

    El objetivo general del curso es proporcionar al alumno/a una visión general de las técnicas y métodos que se aplican en la generación y manipulación de gráficos por computador, desde las Interfaces Gráficas de usuario disponibles en los sistemas operativos actuales hasta los modelos más avanzados de renderizado y animación por computador.

    Dicha visión incluye la comprensión de los fundamentos de dichos métodos, y posibles formas de implementación, así como de sus efectos sobre las escenas virtuales.

     

    Palabras Clave de la Asignatura

    Formatos Gráficos, Modelado Geométrico, GUI, Bezier, Gráficos para la Web, Animación, Realidad Virtual, Renderizado, Expresión Gráfica, Diseño Asistido por Ordenador, Gráficos Vectoriales, CAD.

  • Programa

    programa

     

     

    Datos identificativos de la Asignatura

    • Asignatura: Visualización e Interacción Gráfica

    • Código: 5466

    • Departamento / Área: Departamento de Matemática Aplicada y Ciencias de la Computación

    • Título: Grado en Ingeniería Informática

    • Centro: Facultad de Ciencias

    • Créditos ECTS: 7,5

    • Idioma de impartición: Español

    • Profesor responsable: Andrés Iglesias Prieto

    • Otros profesores: Akemi Gálvez Tomida

     

     

     

        Objetivos    

     

    Objetivos generales

    • El objetivo general del curso es proporcionar al alumno/a una visión general de las técnicas y métodos que se aplican en la generación y manipulación de gráficos por computador, desde las Interfaces Gráficas de usuario disponibles en los sistemas operativos actuales hasta los modelos más avanzados de renderizado y animación por computador. Dicha visión incluye la comprensión de los fundamentos de dichos métodos, y posibles formas de implementación, así como de sus efectos sobre las escenas virtuales.

       

    Objetivos específicos: aptitudes/destrezas

    • Entender los fundamentos básicos de los gráficos por computador, su esquema básico de funcionamiento y el uso del software y hardware aplicado a este campo.

    • Conocer la historia de los gráficos por computador desde sus orígenes, así como la evolución histórica de los distintos métodos en este campo en función del software y hardware disponible en cada momento.

    • Implementar los métodos más usuales de renderizado, iluminación, texturizado y efectos avanzados de los gráficos por computador.

    • Entender el uso de las Interfaces Gráficas de Usuario presentes hoy día en muchos programas y sistemas operativos desde la óptica de los gráficos por computador

    • Adquirir conocimientos suficientes para que pueda diseñar los algoritmos sobre las entidades geométricas más usuales en los gráficos por computador y realizar su implementación en cualquier lenguaje de programación.

    • Conocer el mundo de los entornos multimedia, la realidad virtual y la realidad aumentada.

    • Conocer las técnicas básicas de animación por computador.

    • Conocer las técnicas básicas de la simulación y animación de los fenómenos naturales.

    • Conocer y entender los fundamentos de la animación de seres humanos virtuales y su comportamiento y evolución en mundos virtuales, así como de fenómenos de aparición reciente como “Los Sims” y “Second Life".

    • Entender la interacción de estas técnicas con otros campos de la computación, como la inteligencia artificial y la visualización científica.

    • Conocer los principales formatos gráficos, su campo de aplicación así como sus principales ventajas e inconvenientes.

     

     

     

        Programa de la asignatura    

     

    Tema 1. Introducción a los gráficos por computador. Bibliografía básica

    • Aplicaciones y usos de los gráficos por computador.

    • Ejemplos relevantes y ámbito de aplicación.

    • Historia de los gráficos por computador.

    • Fuentes de información: revistas, libros, CDs, sitios web. Software gratuito y comercial.

    • Enfoque del curso.

    • Vídeo: Ilusiones virtuales (1,5 horas).

       

    Tema 2. Hardware y software para gráficos por computador

    • Tarjetas gráficas.

    • Software gratuito:

      • Visores web y de VRML (CosmoPlayer, AppletViewer).

      • APIs gráficas (OpenGL, DirectX, Java3D).

      • Ray tracing (POVray, ray-tracer).
    • Software comercial: Maya, RenderMan, 3D Studio Max, LightWave).

       

    Tema 3. Algoritmos básicos para gráficos por computador

    • Transformaciones 2D y 3D.

    • Matrices de transformación.

    • Algoritmos de línea: DDA, algoritmo de Bresenham.

    • Algoritmos de clipping.

    • Algoritmos de líneas y superficies ocultas. Algoritmo del pintor, Z-buffer.

    • Práctica 1. Matrices de transformación.

    • Práctica 2. Algoritmo de Bresenham.

       

    Tema 4. Modelado geométrico: curvas y superficies

    • Sistemas de representación: implícitas, explícitas y paramétricas.

    • Curvas y superficies de forma libre: de Bézier, Bsplines y NURBS.

    • Algoritmos básicos:

      • Subdivisión.

      • Elevación de grado.

      • Elección de nodos.

      • Refinamiento.

      • Eliminación de nodos.
    • Algoritmos avanzados:

      • Intersección.

      • Blending.

      • Offset.
    • Ultimas tendencias: T-NURBS, T-NURCCS.

    • Práctica 3. Curvas y superficies de Bézier.

    • Práctica 4. Curvas y superficies Bspline.

    • Práctica 5. GUI avanzada en Matlab para curvas y superficies de forma libre.

    • Vídeo: Curvas y superficies de forma libre.

       

    Tema 5. Renderizado: modelos de iluminación

    • Fundamentos del renderizado.

    • Modelos de polígonos:

      • Alambres.

      • De caras y vértices.

      • Planos.

      • Otros modelos.
    • Modelos básicos de iluminación.

      • Iluminación ambiente.

      • Iluminación difusa.

      • Iluminación especular
    • Efectos de distancia.

    • Algoritmos básicos:

      • Flat.

      • Gouraud.

      • Phong.
    • Ray tracing.

    • Radiosidad.

    • Práctica 6. GUI avanzada en Matlab para modelos de iluminación.

       

    Tema 6. Texturizado

    • Conceptos básicos de texturizado:

      • Texture mapping.

      • Bump mapping.

      • Environment mapping.
    • Fractales:

      • Sistemas de funciones iteradas.
    • L-sistemas.

    • Otros métodos.

    • Ejemplos avanzados.

    • Práctica 7. Fractales: sistemas de funciones iteradas.

    • Práctica 8. Texturizado.

       

    Tema 7. Gráficos por computador avanzados

    • Transparencia.

    • Multiresolución.

    • Niebla.

    • Reflexiones.

    • Simulación de fenómenos naturales: agua, fuego, etc.

    • Práctica 9. Simulación del agua.

       

    Tema 8. Animación por computador

    • Fundamentos de la animación por computador.

    • Animación geométrica.

    • Key framing.

    • Cinemática directa e inversa.

    • Animación basada en scripts.

    • Práctica 10. Sistemas de partículas.

       

    Tema 9. Humanos virtuales

    • Modelado de humanos virtuales:

      • Pelo.

      • Piel.

      • Articulaciones.
    • Animación del comportamiento.

    • Inteligencia artificial.

    • Modelos cognitivos.

    • Ultimas tendencias:

      • Los Sims.

      • Second Life.

      • Animación de multitudes.

       

    Tema 10. Interfaces Gráficas de Usuario. Multimedia. Realidad virtual

    • Interfaces Gráficas de Usuario (GUIs).

    • Ejemplos en Matlab.

    • Entornos multimedia.

    • Creación de una GUI.

    • Realidad virtual:

      • Entornos inmersivos.

      • Entornos proyectivos.

      • Entornos híbridos.
    • Aplicaciones de la realidad virtual.

    • Realidad aumentada.

    • Práctica 11. Creación de una GUI.

       

    Tema 11. Formatos gráficos

    • Gráficos vectoriales.

    • Gráficos de mapa de bits.

    • Formatos:

      • BMP.

      • JPEG.

      • Metafiles.
    • Formatos de compresión de vídeo:

      • MPEG1.

      • MPEG2.

      • MPEG4.
    • Formato AVI.

    • Formatos de compresión de audio: MP3.

    • Compresión fractal.

    • Formatos industriales:

      • IGES.

      • VDA.

      • CATIA.
    • Práctica 12. Formatos MPEG y MP3.

    • Vídeo: Formatos industriales.

       

    Tema 12. Gráficos para la Web

    • Formatos GIF y JPEG.

    • Librerías gráficas para la Web.

    • Web 3D.

    • Visualización de datos mediante gráficos por computador.

    • Últimas tendencias.

    • Práctica 13. Creación de una página web con contenido gráfico.

    • Práctica 14. Realidad virtual. Creación y navegación por una escena en VRML.

  • Bibliografía

    bibliografia

      

     

        Básica    

     

    Los siguientes libros son los recomendados como bibliografía básica. Por ello, se recomienda especialmente su lectura, en especial de los capítulos correspondientes al programa. Los libros están ordenados por un criterio de lectura recomendada: se recomienda comenzar por los indicados en la fila superior y continuar por la fila media. Los dos últimos libros son de corte más computacional: el libro de Rockwwod incluye un tutorial interactivo multimedia sobre los principales conceptos de curvas y superficies. El libro «Graphics Gems» es, en realidad, un libro de recetas computacionales sobre los principales algoritmos en gráficos por computador. Su gran éxito motivó la publicación de varios volumenes posteriores. Todos los títulos indicados están disponibles en la BUC.
    • Vera Anand (1993): «Computer graphics and geometric modeling for engineers». John Wiley & Sons.

    • D.F. Rogers (1998): «Procedural elements for computer graphics». MacGraw-Hill.

    • J. Foley, A. van Dam, S. Feiner & J. Hughes (1999): «Computer graphics. Principles and practice» 2nd Ed. in C. Addison-Wesley.

    • A. Watt (2000): «3D Computer graphics». 3rd Ed. Addison-Wesley.

    • A. Rockwood & P. Chambers (1996): «Interactive curves and surfaces. A multimedia tutorial on CAGD». Morgan Kaufmann, San Francisco.

    • A. Glassner (1990): «Graphics gems». Academic Press (ver tambien Vol. 2 y 3).

     

     

     

        Complementaria    

     

    Los siguientes libros son los recomendados como bibliografía complementaria del curso. Sus contenidos pueden resultar de mucha utilidad como formación complementaria y para la realización de las prácticas y el trabajo fin de curso. El libro sobre NURBS de Piegl y Tiller incluye muchos ejemplos de pseudocódigo tipo C para la creación de programas de manipulación de curvas y superficies NURBS (las más usadas en diseño por computador). Todos los títulos indicados están disponibles en la BUC.
    • L. Piegl & W. Tiller (1997): «The NURBS book springer verlag». 2nd Ed.

    • D. F. Rogers (2000): «An introduction to NURBS: with historical perspective». Morgan Kaufmann Publ.

    • G. Farin (1996): «Curves and surfaces for CAGD». 4th Ed. Academic Press.

    • A. Glassner (1989): «An introduction to Ray Tracing». Academic Press.

    • M.E. Mortenson (1997): «Geometric modeling». 2nd Ed. John Wiley & Sons

    • J. Hoschek & D. Lasser (1993): «Computer aided geometric design». A.K. Peters.

     

     

     

        Revistas    

     

    En la Biblioteca de la Universidad de Cantabria se encuentra una variada colección de revistas dedicadas a los gráficos por computador. Su consulta se aconseja a nivel más avanzado, una vez que se hayan estudiado los principales conceptos y métodos. Por ello, las revistas no suplen a los libros anteriores, ni a los apuntes del curso. Destacamos también que las revistas de la fila media (del grupo Elsevier Science) se encuentran disponibles mediante acceso on-line en el campus de la Universidad de Cantabria. Asimismo, las revistas de IEEE están disponibles en formato electrónico (DVD con los ficheros PDF) en la división de Industriales de la BUC). Numerosas publicaciones de IEEE están también disponibles on-line dentro del campus de la Universidad de Cantabria a través del servicio de acceso IEEEXplorer.
    • «ACM. Transactions on graphics». Revista N° 1 del área.

    • «Computer graphics and siggraph proceedings ACM siggraph».

    • «Computer graphics forum». Blackwell Publishers. Revista de la sociedad europea de gráficos, Eurographics.

    • «Computer aided design». Elsevier Science. Revista  sobre CAD.

    • «Computer aided geometric design». Elsevier Science.

    • «Computers and graphics». Elsevier Science. Revista clásica sobre gráficos.

    • «IEEE computer graphics and applications». IEE Magazine de IEEE sobre gráficos.

    • «IEEE transactions on visualization and computer graphics». IEEE.

    • «Computer Graphics». World COP Communications. Revista de divulgación sobre temas de gráficos por computador.

     

     

     

        Vídeos recomendados    

     

    En la Biblioteca de la Universidad de Cantabria (división de Caminos) están disponibles los vídeos de los congresos ACM Siggraph desde 1992 (formato PAL). A partir de 2005, dichos vídeos están en formato DVD. Como complemento, se usarán algunos otros vídeos para su exposición durante las clases prácticas.
  • Material de Clase

    materiales

     

     

    • MC-F-001. Curvas y superficies de Bezier.
    • MC-F-002. Curvas y superficies Bspline y NURBS.
    • MC-F-003. Algoritmos de linea para gráficos.
    • MC-F-004. Modelos de iluminación para gráficos.
    • MC-F-005. Texturas gráficas.
    • MC-F-006. Formatos industriales para gráficos.
    • MC-F-007. Software de alto nivel para gráficos.
    • MC-F-008. Bibliografia sobre gráficos por computador.
  • Prácticas

    practicas

     

     

    Las prácticas del curso, distribuidas a razón de 2 horas a la semana durante un cuatrimestre (15 semanas) según se describe en horario, consisten en 3 actividades diferentes:

    • Sesiones de vídeo.

    • Prácticas guiadas y propuestas.

    • Trabajo final de curso.

       

    Presentación

    • PR-F-001. Formato de presentación de las prácticas.

       

    Sesiones de vídeo

    El curso incluye, al menos, 3 sesiones de vídeo, organizadas de la forma siguiente:
    • PR-F-002. Vídeo 1. Ilusiones virtuales. Vídeo introductorio del curso. Trata sobre la historia y evolución de los gráficos por computador, con opiniones de expertos en el tema, así como una revisión de las principales aplicaciones de los gráficos por computador (1,5 horas).
    • PR-F-003. Vídeo 2. Curvas y superficies de forma libre. Vídeo educativo producido por HP para la formación en diseño geométrico asistido por computador de curvas y superficies de forma libre. Incluye una revisión de conceptos de geometría diferencial (2 horas).
    • PR-F-004. Vídeo 3. Aplicaciones industriales. Vídeo con entrevistas a expertos del tema sobre el tema del diseño en la producción industrial (30 minutos).

       

    Prácticas guiadas y propuestas

    • PR-F-005. Práctica 1. Matrices de transformación. Implementación de las transformaciones 2D y 3D más usuales. Aplicación a un ejemplo de generación de un patrón gráfico y/o una animación geométrica en modelo de alambres.
    • PR-F-006. Práctica 2. Algoritmo de Bresenham. Implementación de los algoritmos de Bresenham para rectas y curvas. Comparación con el método DDA.
    • PR-F-007. Práctica 3: Curvas y superficies de Bézier. Implementación de los algoritmos para la generación de curvas y superficies de Bézier. El programa resultante debe permitir introducir los puntos de control de curvas bi-dimensionales mediante pulsación de ratón sobre la pantalla, de forma interactiva. En el caso de superficies, los datos deben ser introducidos manualmente por el usuario/a mediante el teclado o bien leidos directamente de un fichero.
    • PR-F-008. Práctica 4. Curvas y superficies Bspline. Implementación de los algoritmos para la generación de curvas y superficies Bspline. El programa resultante debe permitir introducir los puntos de control de curvas bi-dimensionales mediante pulsación de ratón sobre la pantalla, de forma interactiva. En el caso de superficies, los datos deben ser introducidos manualmente por el usuario/a mediante el teclado o bien leidos directamente de un fichero.
    • PR-F-009. Práctica 5. GUI avanzada en Matlab para curvas y superficies de forma libre. En esta práctica, se muestra una Interfaz Gráfica de Usuario (GUI) sobre curvas y superficies de forma libre, la cual se utiliza para analizar los algoritmos mas importantes para estas entidades geométricas. Se propone la creación por parte del alumno/a de una GUI similar que incorpore algunos de los algoritmos analizados (subdivisión, elevación de grado, etc.).
    • PR-F-010. Práctica 6. GUI avanzada en Matlab para modelos de iluminación. En esta práctica se muestra una GUI para analizar diversos modelos de iluminación (flat, gouraud, phong). Se propone la creación por parte del alumno/a de una GUI similar que permita iluminar objetos o escenas de acuerdo a los modelos estudiados.
    • PR-F-011. Práctica 7. Fractales: sistemas de funciones iteradas. Implementación de un programa para la generación de estructuras fractales mediante sistemas de funciones iteradas. Aplicación del mismo para la animación de objetos naturales y/o la generación de objetos fractales con cierto realismo (montañas fractales, etc.).
    • PR-F-012. Práctica 8. Texturizado. Implementación de algún modelo de texturizado (bump mapping, texture mapping, etc.). Posible uso de software ya creado para la generación de texturas y su aplicación sobre objetos de diversas geometrías.
    • PR-F-013. Práctica 9. Simulación del agua. Implementación de algún método (mapas de alturas, sistemas de partículas, etc.) de simulación y renderizado del agua.
    • PR-F-014. Práctica 10. Sistemas de partículas. Generación de un sistema de partículas por ordenador. Aplicación a la simulación de algún fenómeno natural (fuego, agua, explosiones, humo, etc.).
    • PR-F-015. Práctica 11. Creación de una GUI. Creación de una GUI en algún lenguaje de programación y/o librería gráfica sobre alguno de los tópicos estudiados en el curso o en las prácticas del mismo.
    • PR-F-016. Práctica 12. Formatos JPEG, MPEG y MP3. Estudio teórico-práctico del formato gráficos JPEG, de video MPEG y/o de audio MP3.
    • PR-F-017. Práctica 13. Creación de una página web con contenido gráfico. Creación de contenido web con elementos gráficos (vídeo, imágenes GIF, JPEG, audio, etc.) y/o contenido multimedia. Creación de contenidos multimedia mediante esquemas Web3D.
    • PR-F-018. Práctica 14. Realidad virtual. Creación y navegación por una escena en VRML. Creación de una escena en VRML. Navegación por la escena. Interacción con eventos y/o avatars.

    Notas

    • Las prácticas que supongan la generación de código por computador pueden realizarse sobre cualquier lenguaje de programación (C/C++, Pascal, Fortran, Java) y/o librería gráfica (OpenGL, DirectX), así como sistemas de cálculo científico de propósito general (Matlab, Maple, Mathematica). No obstante, se sugiere que el lenguaje/librería/sistema elegido disponga de algún tipo de prestación gráfica a fin de disminuir la dificultad que conllevaría la práctica en caso de requerir la generación de la parte gráfica desde cero.

    • Se aceptan implementaciones sobre vídeo-consolas. Igualmente, se aceptan implementaciones sobre dispositivos de interacción hombre-máquina tipo Wii o similares.

    • La práctica debe acompañarse con una breve memoria que exponga:

      • El objetivo de la práctica.

      • Los métodos implementados con sus correspondientes fórmulas, pseudocodigos, etc. según corresponda.

      • Los principales resultados obtenidos.

      • Limitaciones y ventajas del software generado.

      • Lista de ejemplos de prueba (banco de pruebas).
    • La lista de prácticas indicada no es exhaustiva. En todo momento, un alumno/a puede proponer realizar alguna práctica no considerada en la lista anterior. El profesor determinará, tras la conversación con el alumno/a, si se acepta su propuesta como posible práctica del curso o posible trabajo fin de curso.

      

    Trabajo final del curso

    • El trabajo final del curso debe entenderse como una práctica más completa. El trabajo presenta unos objetivos más ambiciosos que una práctica común, tanto en el planteamiento como en el desarrollo posterior. Asimismo, demuestra una mayor conocimiento de algún tema (el elegido en el trabajo) que la mera realización de una práctica.

    Notas

    • El trabajo final de curso puede ser realizado de forma individual o en grupo. En este último caso, todos los integrantes del grupo tendrán asignada la misma nota, salvo que puede distinguirse claramente la parte realizada por cada alumno/a. Los grupos pueden ser de hasta 4 personas.

    • Cada trabajo final de curso debe incluir una memoria como la reseñada para las prácticas, pero de mayo longitud y profundidad de contenidos.

    • El tema del trabajo final del curso es de libre elección por parte de los alumnos/as, pero debe estar relacionado con los temas del curso. En otras palabras, pueden abordarse temas no tratados en el curso, pero dichos temas deben tener relación con los contenidos del curso. En todo caso, la propuesta de cada trabajo debe contar con la aprobación de la propuesta por parte de los profesores del curso.

  • Otros Recursos

    otros_recursos

     

     

    Software

    El siguiente software es gratuito y puede descargarse libremente en Internet. De hecho, se propone su uso a lo largo del curso para la realización de las prácticas y/o el trabajo de fin de curso. El alumno/a deberá usar los enlaces indicados abajo para el uso de este software.
    • OR-F-001. OpenGL (Open Graphics Library). El lenguaje gráfico por excelencia. Hoy en día es el API (Applications Programming Interface) estándar para computación. Incorporado en general en todos los ordenadores.
    • OR-F-002. POVRay (Persistence Of Vision RayTracer). Software para ray tracing. Ideal para obtener imágenes fotorealista de altísima calidad. Muy lento, no es adecuado para animación.
    • OR-F-003. VRML (Virtual Reality Markup Language). Plug-in CosmoPlayer. Lenguaje de marcación para creación de objetos y escenas en realidad virtual.
    • OR-F-004. Apuntes sobre L-sistemas en formato PDF.

       

    Notas

    • El uso de OpenGL requiere herramientas adicionales para compilación y creación y manejo de ventanas. Se recomienda el uso de GLUT (OpenGL Utility Toolkit) sobre C/C++.

    • El uso de VRML requiere el uso de un navegador y los plug-ins adecuados, según se explicará en el curso.

    • Se recomienda NO usar el navegador Microsoft Internet Explorer.

    • Navegadores aceptados: Firefox, Netscape, Opera, Mozilla, SeaMonkey.

    • El plug-in recomendado es CosmoPlayer.

  • Pruebas de Evaluación

    evaluacion

      

     

        Criterios de evaluación    

     

    • Como forma de evaluación se propone una Evaluación Continua en base a las Prácticas indicadas en el programa, así como en un Trabajo Final del curso.
    • Como norma general, cada alumno/a debe realizar al menos 6 de las 14 Prácticas propuestas, valoradas de 0 a 10 puntos cada una. En ese caso, el Trabajo Final se valorará de 0 a 40 puntos.
    • Un alumno/a podrá solicitar la realización de hasta 2 Prácticas Complementarias, igualmente valoradas de 0 a 10 puntos cada una. En ese caso, el Trabajo Final del curso se valorará de 0 a 20 puntos.
    • La Nota Final será la suma de las notas obtenidas normalizada a la escala 0-10.
    • Excepcionalmente, el alumno/a que no haya superado la asignatura mediante la realización de las Prácticas y Trabajo Final del curso, podrá presentarse al examen tanto en la convocatoria de junio como en la de setiembre.
  • Guía de Aprendizaje

    guia

     

     

  • Sobre el Profesor

    profesor

     

     

    andres_iglesias.jpg    

    Andrés Iglesias Prieto

     

    Departamento de Matemática Aplicada y Ciencias de la Computación

    UNIVERSIDAD DE CANTABRIA
     
    Más información

     

    akemi_galvez.jpg    

    Akemi Gálvez Tomida

     

    Departamento de Matemática Aplicada y Ciencias de la Computación

    UNIVERSIDAD DE CANTABRIA
     
    Más información