2019-20

Semestre 2019-20

Nombre del curso: Computación Visual Interactiva
Course Name:
Créditos: 4
Profesor: Pablo Figueroa (pfiguero-at-uniandes.edu.co)
Versión PDF Click Aquí

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 hacen prácticas en dos tecnologías, una de amplia difusión (WebGL) y otra de punta, gracias a los últimos recursos disponibles en Colivri (Tarjetas RTX). 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. Para este semestre, se trabajarán dos implementaciones: una implementación actual de Javascript y WebGL, y una implementación que da acceso a las nuevas funcionalidades de Real Time Ray Tracing.

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 desarrollara a través de actividades de tipo:

  • Presentación y discusión de temas en clase, a partir de lecturas y actividades previas
  • Revisión de código de ejemplos y discusión en clase
  • Desarrollo de ejercicios sobre cada tema, desarrollados en WebGL y OptiX
  • Desarrollo de un trabajo de profundización

Para desarrollar esta metodología, se espera que el estudiante le dedique 3h de trabajo individual entre lunes y jueves a la revisión de lecturas y actividades para cada tema, y 6h de jueves a lunes al desarrollo de ejercicios y revisión de código. El trabajo de profundización se desarrolla en las últimas dos semanas del curso.

Evaluación

Porcentaje Actividad(es) a evaluar
30% Comprobaciones de lectura
30% Ejercicios semanales
30% Actividades de revisión de código
20% Proyecto de profundización

El proyecto de profundización representa un bono de un 10% sobre la nota final del curso.

Ejercicios Semanales

Cada semana se tiene un enunciado para un ejercicio que debe desarrollarse entre el jueves y lunes de cada semana. Se debe publicar el URL del código en una de las herramientas en línea (Fiddle ó CodePen), y un blog que describa el desarrollo, junto con tiempo planeado y tiempo actualmente gastado.

Ejemplos de blogs son los siguientes:

Revisión de Código

Todos los lunes revisaremos uno de los ejemplos. La revisión se hace de la siguiente manera:

  • En la primera semana de clase, se escogen los distintos ejemplos para revisar.
  • La primera semana de clase se define el orden para las primeras 10 presentaciones
  • Cada semana, el encargado de revisar el código publica en el foro una presentación de explicación sobre el código
  • Los demás estudiantes publican en el foro preguntas sobre el código
  • Entre todos respondemos las preguntas en el foro en clase de los lunes

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 y 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)