— 2021-10

Semestre 2021-10

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. Se cubren temas como modelaje, sistemas de coordenadas, transformadas, cámara, proyecciones, color, textura e iluminación. Se sugiere desarrollar las prácticas y ejercicios en WebGL, pero cada estudiante puede escoger otra herramienta, que cumpla con los requisitos descritos al inicio del curso. 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.
  • 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:

  • Presentación y discusión de temas en clase, a partir de lecturas y comprobaciones de lectura
  • 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 3h de trabajo individual entre miércoles y viernes y 6h de viernes a miércoles. 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:

Calendario global del curso

Vea el tab “semanas” en este link.

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

Proyecto 2: Una corta historia procedimental

El segundo proyecto consiste en una corta historia procedimental, donde se buscaba que el estudiante mostrara lo que puede crear en código con base en los primeros conceptos del curso: objetos geométricos sencillos, transformadas, cámaras, animación. Hubo proyectos en diversas herramientas: Unity, Unreal, OpenGL, WebGL, three.js y babylon.js. Felicitaciones a todos éstos ingenieros por el esfuerzo!

Links de interés:

Anteriores Versiones