Semestre 2022-20
- Descripción
- Objetivos
- Metodología
- Evaluación
- Calendario
- Conocimientos previos
- Bibliografía
- Proyectos
- Anteriores...
Descripción
Este curso estudia los conceptos, tecnologías y buenas prácticas de la computación visual interactiva, entendida como la generación de gráficas por computador. En la primera parte del curso se estudian conceptos del pipeline tradicional como modelaje, sistemas de coordenadas, transformadas, cámara, proyecciones, color, textura e iluminación. Se estudian éstos conceptos por medio de WebGL, aunque puede utilizarse para los talleres cualquiera de los ambientes de bajo nivel existentes, como Vulkan, Metal, u OpenGL. En la segunda parte del curso se estudian otros pipelines y extensiones, y se puede usar cualquier ambiente de alto nivel que permita experimentar con dichos conceptos. Se estudian ejemplos de buenas prácticas, para comprender mejor la aplicación de conceptos y tecnologías.
Objetivos
El objetivo principal es que el estudiante sea capaz de entender y utilizar los conceptos de la computación visual interactiva en la generación de gráficas por computador en un lenguaje de programación y con un API gráfico en particular.
Los objetivos específicos están dirigidos a:
- Conocer y aplicar los conceptos básicos de programación de gráficas por computador: modelaje, sistemas de coordenadas, transformadas, animación, cámara, proyecciones, color, textura e iluminación.
- Entender ejemplos publicados en la web en el lenguaje escogido.
- Conocer y aplicar los conceptos básicos de interacción con gráficas por computador.
- Conocer y aplicar los conceptos básicos de programación de gráficas con las nuevas tarjetas gráficas que soportan real time ray tracing.
Metodología
El cubrimiento de los temas se desarrollará a través de las siguientes actividades:
- Adquisición, presentación y discusión de conceptos, a partir de lecturas, comprobaciones de lectura y discusiones en clase.
- Desarrollo de ejercicios en clase.
- Desarrollo de proyectos que unen conceptos de varios temas.
- Desarrollo de un proyecto final individual.
- Desarrollo de un trabajo de profundización.
Para desarrollar esta metodología, se espera que el estudiante le dedique en total 9h de trabajo individual cada semana. En el cronograma del curso se sugiere 3h de trabajo individual entre martes y miércoles y 6h de miércoles a martes de la siguiente semana, pero es solo una sugerencia. El trabajo de profundización se desarrolla en las últimas semanas del curso.
Evaluación
Porcentaje | Actividad(es) a evaluar |
---|---|
30% | Comprobaciones de lectura |
30% | Ejercicios semanales |
30% | Proyectos |
20% | Proyecto de profundización |
El proyecto de profundización representa un bono de un 10% sobre la nota final del curso.
Ejercicios Semanales
En cada clase se desarrolla una actividad que busca afianzar los conceptos de las lecturas. Se debe publicar el código en línea y un video corto (no mas de 10 segundos) con el resultado obtenido.
Proyectos
Cada 2 ó 3 temas se plantea la entrega de un proyecto, que resume los conceptos revisados hasta ese momento. Se publica el link al proyecto y un video corto (no mas de 30 segundos) sobre su desarrollo y resultados. Opcionalmente, puede usarse un blog para describir la experiencia de desarrollo.
Ejemplos de blogs son los siguientes:
- Blog de David Mayorga
- Blog de Fabián Medina
Calendario global del curso
Conocimientos previos
Se espera que el estudiante haya visto el curso de estructuras de datos, y pueda aprender un nuevo lenguaje como Javascript, python, C ó C++, si no los conoce.
Bibliografía
En el programa del curso se incluyen URLs para cada uno de los temas del curso. Se puede usar como referencia cualquier libro de computación gráfica, pero en particular se tienen los siguientes 2 libros:
- Edward Angel, Dave Shreiner. Interactive Computer Graphics: A Top-Down Approach with WebGL. Pearson; 7 edition (March 10, 2014)
- Kouichi Matsuda, Rodger Lea. WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL (OpenGL). Addison-Wesley Professional; 1 edition (July 19, 2013)
Proyectos Seleccionados