Computación Gráfica (300CIG008)

 

Información Básica

  • Créditos: 3
  • Horas de clase: 4 / semana
  • Horas de trabajo independiente: 5 / semana
  • Prerequisitos: Álgebra Lineal, Objetos y Programacion a Media Escala.
  • Tipo de curso: Núcleo de Formación Fundamental.

Descripción del Curso

En este curso se presentan los fundamentos de la computación gráfica. A partir de estos conceptos los estudiantes podrán generar aplicaciones en dos y tres dimensiones en un dispositivo computacional. Los estudiantes podrán identificar las estructuras, modelos, técnicas y herramientas de computación gráfica para crear estas aplicaciones y estarán en capacidad de implementarlas utilizando herramientas de modelado y librerías de programación especializadas en gráficos.

Objetivos

Al finalizar el curso los participantes podrán:

  1. Conocer los conceptos fundamentales de la Computación Gráfica.
    1. Reconocer el objeto de estudio de la Computación Gráfica, los eventos históricos y sus aplicaciones.
    2. Definir Computación Gráfica, Mapa de Bits, Profundidad de bits, Mundo Virtual, Modelo de color, imagen digital, tubería gráfica, geometría computacional, triangulación, subdivisión de superficies, extracción de superficies, modelo de cámara, proyección, fotorealismo, modelo de iluminación, mapas de luz, mapas de normales, GPU.
    3. Describir la tubería gráfica y los problemas y limitaciones de la computación gráfica.
    4. Identificar los modelos básicos de la computación gráfica en 3D, técnicas de generación procedimental de modelos avanzados.
    5. Comparar modelos de computación gráfica, formas de proyección, modelos para lograr el fotorealismo.
    6. Calcular la profundidad de bit, conversiones entre modelos de color, transformaciones geométrica, cuaterniones, normales, normalizaciones, intersecciones y distancias, el movimiento de cámara.
    7. Identificar el hardware necesario para crear mundos virtuales de computación gráfica.
    8. Escoger y emplear modelos de computación gráfica
    9. Discutir y reconocer el papel de la computación gráfica
  2. Implementar aplicaciones basadas en computación gráfica
    1. Utilizar herramienta de creación de modelos 2D y 3D, Interfaces de Programación de Aplicaciones (API) de computación gráfica en múltiples plataformas siguiendo estándares de codificación.
    2. Crear primitivas y mallas, mallas utilizando subdivisión de superficies.
    3. Programar la persistencia, carga y despliegue de una malla en la pantalla.
    4. Utilizar hardware para programar mundos virtuales basados en computación gráfica
    5. Implementar mundos virtuales con modelos basados en primitivas o mallas y una cámara móvil.
    6. Generar una escena fotorealista utilizando un trazador de rayos.
    7. Comparar alternativas de solución para la creación de un mundo virtual.
    8. Diseñar software capaz de visualizar mundos virtuales basados en computación gráfica.
    9. Diseñar, comparar y evaluar interfaces de usuario
  3. Explicar el desarrollo de una aplicación de computación gráfica
    1. Formular un problema relacionado con la creación de la aplicación.
    2. Explicar textual y visualmente los procesos de análisis, diseño y los resultados relacionados con la aplicación.
    3. Resumir, defender y evaluar los resultados

Contenido

Capítulo 1: Fundamentación teórica

Sesión Horas de Clase Tópicos Bibliografía
1 2 Definición de la Computación Gráfica. Historia, aplicaciones, hardware. [1 caps 1, 3, 4, 8]
2 2 Modelos de color, la tubería gráfica, mapas y profundidad de bits. Objetos básicos de la computación gráfica, primitivas, mallas y sus estructura de datos. [1 caps 1, 13, 18][3 caps 3,4]
3 2 Transformaciones geométricas, cuaterniones. [1 caps 5, 21][2 cap 4][3 cap 5]
4 2 Taller de estructuras de datos y transformaciones geométricas. [1 caps 5, 21][2 cap 4][3 cap 5]
5 2 Geometría computacional, triangulación, subdivisión de superficies, extracción de superficies, intersecciones y distancias. [1 cap 12][2 cap 2][7][9]
6 2 El modelo de cámara u observador, modos de proyección. [5 cap 5][1 cap 6][16 cap 3][3 caps 6, 7]
7 2 Modelos de iluminación, materiales, fuentes de luz, transparencia. Texturas de mapas de bit, texturas procedimentales, sombras. [1 cap 15][2 cap 6,8][3 cap 10][1 cap 13][2 cap 7]
8 2 Introducción al trazado de rayos. [3 cap 10][1 cap 16]
9 2 Geometría constructiva de sólidos (CGS), metaballs, extrusiones, superficies de revolución. [3 cap 8][1 cap 20]
10 2 Fundamentos de las imágenes digitales. Intensidad y filtros. [15 caps 1,2,3,4,5]

Total de Horas: 20.

Capítulo 2: Herramientas de la Computación Gráfica

Sesión Horas de Clase Tópicos Bibliografía
11 2 Generación de primitivas en Blender. Transformaciones geométricas en Blender [10]
12 2 Generación de primitivas, transformaciones geométricas, camara en OpenGL [6]
13 2 Generación de primitivas, transformaciones geométricas, camara en OpenGL [6]
14 2 Generación de primitivas, transformaciones geométricas, camara en OpenGL [6]
15 2 Generación de primitivas, transformaciones geométricas, camara en OpenGL [6]
16 2 GLSL. Shader de vértices y pixels [6 cap 15][8]
17 2 GLSL. Shader de vértices y pixels [6 cap 15][8]
18 2 Introducción a otras librerías y herramientas de la Computación Gráfica [5]
19 2 Introducción a otras librerías y herramientas de la Computación Gráfica [5]

Total de Horas: 16.

Capítulo 3: Computación Gráfica en la Red

Sesión Horas de Clase Tópicos Bibliografía
20 2 Tecnologías graficas en la red, introducción y ejemplos. Computación Gráfica en la nube. Computación gráfica Móvil [12 caps 17,18,19] [13][14 caps 1,2,3,4,5,7]
21 2 Tecnologías graficas en la red, introducción y ejemplos. Computación Gráfica en la nube. Computación gráfica Móvil. [12 caps 17,18,19] [13][14 caps 1,2,3,4,5,7]
22 2 Tecnologías graficas en la red, introducción y ejemplos. Computación Gráfica en la nube. Computación gráfica Móvil. [12 caps 17,18,19] [13][14 caps 1,2,3,4,5,7]
23 2 HTML5, WebGL [14 caps 1,2,3,4,5,7]
24 2 HTML5, WebGL [14 caps 1,2,3,4,5,7]
25 2 HTML5, WebGL [14 caps 1,2,3,4,5,7]
26 2 Otras tecnologías para la red [13]

Total de Horas: 14.

Capítulo 4: Fundamentos de Interacción Humano Computadora

Sesión Horas de Clase Tópicos Bibliografía
27 2 Interacción humano computadora, diseño centrado en el usuario. Metodologías.Técnicas y tareas de interacción, tecnologías y tendencias. Principios de diseño GUI. [1 caps 8,9]
28 2 Interacción humano computadora, diseño centrado en el usuario. Metodologías.Técnicas y tareas de interacción, tecnologías y tendencias. Principios de diseño GUI. [1 caps 8,9]
29 2 Medición cualitativa y cuantitativa de interfaces [11 cap 3]
30 2 Interfaces en QT [1 caps 8,9][11 cap 3]
31 2 Interfaces en QT [1 caps 8,9][11 cap 3]

Total de Horas: 10.

Bibliografía

  1. Computer Graphics: Principles and Practice in C (2nd Edition) by James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes, 1995
  2. 3D computer graphics. – 3ed. Alan Watt. 2000. Addison Wesley
  3. Computer graphics with OpenGL. – 3ed. Donald Hearn. 2004
  4. 3D games : real-time rendering and software technology. – 1ed. Alan Watt, Fabio Policarpo. 2001. Addison Wesley
  5. OpenGL programming guide : the official guide to learning OpenGL, versión 2 – Addison-Wesley Publishing Company. 2006.
  6. Computational Geometry: Algorithms and Applications by Mark de Berg, Otfried Cheong, Marc van Kreveld, and Mark Overmars, 2008
  7. GPU Gems 3 by Hubert Nguyen, 2007
  8. Navarro Newball, A. A., Wyvill, G., and McCane, B. (2008). Efficient Mesh Generation Using Subdivision Surfaces. Sistemas & Telematica, 6 (12), 111–126.
  9. Blender Foundation. www.blender.org
  10. Diseño de sistemas interactivos : la importancia de nuestra relación con las computadoras. Raskin, Jef (2001)
  11. XNA Game Studio 4.0. Rob Miles. Microsoft. 2001
  12. Professional WebGL Programming: Developing 3D Graphics for the Web. Andreas Anyuru (2012)
  13. Digital image processing (3ed.) (c2008)González, Rafael C. Woods, Richard Eugene, 1954- (Autor Personal)Pearson Education, c2008

Instalaciones

Salón de clase con computador y proyector.
Laboratorio de Ingeniería de Sistemas y Computación.

Material de este semestre