Planificación de Computación Gráfica (2021)

 IMPRIMIR PLANIFICACIÓN

Información básica

Carrera
Ingeniería en Informática
Departamento
Informática
Sitio Web
http://e-fich.unl.edu.ar/
Plan de Estudios
Plan 2006
Carácter Período
Cuatrimestral 2° Cuatrimestre
Docente Responsable
Pablo José Novara

Equipo docente

Nombre y Apellido
Mainero, Francisco Ruben
Novara, Pablo José
Yones, Cristian Ariel

Carga horaria

Carga horaria total 101 hs
Teoría 32 hs
Resolución de ejercicios 31 hs
Proyecto y diseño 6 hs
Evaluaciones 15 hs
Formación experimental 0 hs
Resolución de problemas de ingeniería 10 hs
Otras actividades 7 hs

Contenidos mínimos

Análisis de modelos y formas de representación gráfica de estructuras geométricas bidimensionales y tridimensionales, conceptos y algoritmos de computación gráfica, dispositivos gráficos, geometría y algoritmos para generar y organizar objetos 2-D y 3-D, transformaciones, Iluminación y sombreado, color y texturas, proceso de renderizado de imágenes realistas.

Objetivos

Que el alumno conozca los principios y fundamentos de la computación gráfica, la arquitectura de un sistema gráfico y los componentes más usuales de un pipeline de renderizado, domine algunas técnicas computacionales para modelar, manipular y representar objetos bidimensionales y tridimensionales y sea capaz de desarrollar programas con interfaces gráficas 2D y 3D que utilicen dichas técnicas.

Conocimientos específicos previos para cursar la asignatura

Trigonometría, algebra lineal, algebra de vectores y matrices, espacios vectoriales, funciones, continuidad y derivadas en curvas y superficies.

Programación estructurada y orientada a objetos con C/C++.

Inglés: aunque se proveen apuntes y algunas fuentes en Castellano, es altamente recomendable que el alulmno pueda buscar y/o utilizar fuentes en Inglés.

 

Metodología de enseñanza

Se seleccionaron contenidos ejemplificadores de situaciones encontradas en la práctica profesional y algunos temas formativos de base, necesarios para aprender los conceptos y técnicas más avanzados.

La materia comprende técnicas en constante cambio; por lo que se dará mayor fuerza a sus fundamentos teóricos, de modo que sirvan al alumno en cualquier situación futura. Además, en razón de esta velocidad de cambio (y en consecuencia de la velocidad con que se puede desactualizar un material de estudio) el estudiante debe poder estudiar de fuentes en Inglés. Sin embargo, se proveen a modo de paliativo apuntes de cátedra, conteniendo el desarrollo completo de los contenidos exigidos, y además se rescatan algunos apuntes en castellano de otras universidades.

Por cada unidad generalmente habrá dos clases: primero una clase de teoría y luego una segunda clase práctica. Las clases teóricas son participativas, se declaran los objetivos y se presentan y discuten los contenidos de cada tema, incluyendo ejemplos prácticos tanto didácticos y/o académicos, como reales. Se le recomienda fuermente al alumno leer el material teórico que proporciona la cátedra antes de la clase. Las clases prácticas generalmente comienzan con una breve introducción donde se explicitan los mecanismos de implementación para la práctica y las herramientas adicionales necesarias, y finalizan (en lo posible) con la defensa/exposición de la misma. Durante las mismas, la producción del software queda a cargo del alumno (aunque generalmente partiendo de una base entregada por la cátedra), y el alumno es supervisado y evaluado durante el proceso.

Dado que el parcial evalúa solo teoría, y por ello la forma de resolverlos y aplicar los contenidos puede ser diferente a la práctica, se preveen además algunas clases de teoría en las que no se dictarán temas nuevos, sino que se utilizarán para discutir las respuestas esperadas a preguntas de exámenes de años anteriores.

Sobre el final del cuatrimestre los alumnos, por grupos, deben producir y exponer un trabajo final de su elección, que puede tener el estilo de los prácticos (donde el alumno deberá desarrollar un programa) o ser puramente teórico (presentando algún contenido nuevo o que integre los conocimientos adquiridos).

Programa Analítico

Introducción a la Computación Gráfica

Presentación general del contenido de la materia. Motivación y desarrollo histórico de la Computación Gráfica. Campos de aplicación. Perspectiva histórica y tendencias. Herramientas de hardware y dispositivos de visualización e interacción. Rendering Pipeline. API’s, bibliotecas y GUI’s portables. Presentación de OpenGL y GLUT.

Interpolación

Interpolación vs. aproximación. Interpolación lineal. Conjuntos convexos. Envoltorio convexo. Coordenadas baricéntricas. Interpolación Bilineal. Interpolación hiperbólica o de perspectiva correcta. Interpolación esférica lineal de versores. Cuaterniones. Rotación definida por cuaterniones. Interpolación de rotaciones.

Modelado de la Iluminación y el Color

Fundamentos de la teoría del color. Receptores del ojo humano y percepción del color. Reproducción del color, diagrama CIE, gamut, gamma. Espacios RGB, CMY y HSV. Colores aditivos y sustractivos. Modelos de iluminación y sombreado de superficies. Iluminación local y global. Modelos BDRF y fenomenológicos. Modelo de Phong. Normales e Interpolación de la iluminación. Sombreado: Facetado, Gouraud, Phong. Modelado de colores y transparencias. Color y alfa. Mezcla (blending) y transparencias. Modelado de luces y materiales en OpenGL. Modelado de la fuente de luz. Modelo de Phong en OpenGL. Neblina (fog).

Geometría del Espacio y Transformaciones

Transformaciones en OpenGL. Ventana del dispositivo de salida. Teoría básica de las transformaciones. Pilas de matrices. Matrices model, view, projection. Composición de transformaciones. Transformaciones jerárquicas. Transformaciones en general. Espacio lineal; vectores; combinación e independencia lineal; transformación lineal; matriz de transformación. Espacio afín; puntos como ubicaciones y vectores como desplazamientos; combinación e independencia afín; expansión afín; transformación afín. Espacio Euclídeo; métrica; transformaciones rígidas y de similaridad; orientación. Espacio proyectivo; subespacios lineales como puntos, vectores en el espacio físico y vectores como dirección; coordenadas homogéneas y representación matricial; transformaciones afines en el plano proyectivo; transformaciones proyectivas en general. Proyección ortogonal y perspectiva; modelo de la cámara de cajón (pinhole camera); horizonte; proyección de paralelas - puntos de fuga. Manipulación virtual de la cámara: zoom, pan, dolly. Proyección de sombras. Transformación dual de las normales.

Rasterización

Framebuffer y concepto de rasterización. Rasterización de segmentos rectilíneos. Algoritmo DDA (Digital Diferencial Analyzer). Algoritmos de Bresenham o punto medio. Rasterización de circunferencias. Rasterización de curvas en general. Algoritmo de subdivisones para rasterización. Relleno de curvas y polígonos cerrados. Antialiasing. Muestreo, supersampling y multisampling.

Métodos en el Espacio de la Imagen

Ocultamiento en image-precision, z-buffer. Manipulación de buffers. Operaciones con fragmentos. Operaciones Logicas. Mezcla. Stencil-buffer. Buffer de Acumulación. Técnicas de renderizado multipaso. Imágenes en OpenGL. Lectura / Escritura. Lectura del z-buffer. Posición 3D del cursor. Siluetas. Sombras. Práctica: Técnicas de renderizado multipaso: Visibilidad, Stencil, Motion-blur.

Texturas

Texturas. Modelado de la terminación superficial y otros usos. Imágenes 1, 2 y 3 dimensionales. Proyección e interpolación de las imágenes. Extensión por clamping y wrapping. Modos de mezcla de la imagen con el color de la superficie. Filtrado y mipmapping. Modos de mapeo manual, plano, cúbico, cilíndrico, esférico y ambiental. Efectos especiales. Bumb-mapping y displacement-mapping.

Curvas y Superficies

Introducción al modelado geométrico. Level-sets. Metaballs. Imágenes médicas voxelizadas. Operaciones booleanas de sólidos o CSG. Métodos de representación de la frontera (B-Rep). Superficies analítcas. Triangulaciones. Curvas paramétricas. Curvas de Bézier. Polinomios de Bernstein. Algoritmo de De-Casteljau. Derivadas de curvas. Reparametrización. Subdivisión. Elevación del grado. Control local vs. global. Splines interpolantes. Catmull-Rohm, Overhauser y otras técnicas. NURBS. B-Splines y forma polar. Parametrizacion, Knot-Vector. Superficies paramétricas. Producto cartesiano, Bezier, NURBS. Superficies bilineales, regladas, Coons, por barrido, revolución y lofted. Curvas y superficies por subdivisión iterativa.

Intersecciones y Ordenamiento Espacial

Intersecciones. Segmentos y triángulos en el espacio. Planos y tetraedros. Circunferencias y esferas. Descarte masivo. Envoltorios. Ordenamiento espacial. Divide and conquer. Árboles binarios: BSP tree, KD-tree, octree. Algoritmos de visibilidad (model-precision). Diagrama de Voronoï y triangulación Delaunay. Circunferencia por tres puntos. Esfera por cuatro puntos. Algoritmos de búsqueda lineal en conjuntos convexos.

Bibliografía

Bibliografía básica

Samuel R. Buss
3D Computer Graphics. A Mathematical Introduction with OpenGL
Cambridge University Press

ISBN: 978-0-521-82103-2
Descripción:

Libro de cabecera para casi todas las teorías.

Dave Shreiner - The Khronos OpenGL ARB Working Group
OpenGL Programming Guide: The Official Guide to Learning OpenGL
Addison-Wesley Professional


Descripción:

Fuente para el aprendizaje de la práctica con OpenGL.

 

Bibliografía complementaria

Donald Hearn, M. Pauline Baker
Computer Graphics with OpenGL
Pearson Prentice Hall

ISBN: 0-13-015390-7

Edward Angel
Interactive Computer Graphics, A Top-Down Approach Using OpenGL
Pearson Addison Wesley

ISBN: 0-321-32137-5

Tomas Akenine-Möller, Eric Haines, Naty Hoffman
Real-Time Rendering
A K Peters, Ltd

ISBN: 978-1-56881-424-7

Cronograma de actividades

Presentación de la Materia y Teoría Introductoria. Semana 1 Tipo: T Duración: 4 hs
Docente/s responsable/s: Pablo José Novara
Descripción:
Observaciones:
Práctica Introductoria Semana 1 Tipo: EP Duración: 3 hs
Docente/s responsable/s: Francisco Ruben Mainero, Pablo José Novara, Cristian Ariel Yones
Descripción:
Observaciones:
Teoría: Interpolación Semana 2 Tipo: T Duración: 4 hs
Docente/s responsable/s: Pablo José Novara
Descripción:
Observaciones:
Teoría: Modelado del Color y la Iluminación Semana 2 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo José Novara
Descripción:
Observaciones:
Práctica: Iluminación Semana 3 Tipo: EP Duración: 4 hs
Docente/s responsable/s: Francisco Ruben Mainero, Cristian Ariel Yones
Descripción:
Observaciones:
Teoría: Espacios y Transformaciones Semana 3 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo José Novara
Descripción:
Observaciones:
Práctica: Transformaciones Semana 4 Tipo: EP Duración: 4 hs
Docente/s responsable/s: Francisco Ruben Mainero, Cristian Ariel Yones
Descripción:
Observaciones:
Consultas y resolución de ejercicios de examen Semana 4 Tipo: PI Duración: 3 hs
Docente/s responsable/s: Pablo José Novara
Descripción:
Observaciones:
Teoría: Intersecciones y Ordenamiento espacial Semana 5 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo José Novara
Descripción:
Observaciones:
Teoría: Rasterización y Antialiasing Semana 5 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo José Novara
Descripción:
Observaciones:
Práctica: Rasterización Semana 6 Tipo: EP Duración: 4 hs
Docente/s responsable/s: Francisco Ruben Mainero, Cristian Ariel Yones
Descripción:
Observaciones:
Teoría: Espacio de la Imagen Semana 6 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo José Novara
Descripción:
Observaciones:
Práctica: Espacio de la Imagen Semana 7 Tipo: EP Duración: 4 hs
Docente/s responsable/s: Francisco Ruben Mainero, Cristian Ariel Yones
Descripción:
Observaciones:
Consultas y resolución de ejercicios de examen Semana 8 Tipo: PI Duración: 4 hs
Docente/s responsable/s: Pablo José Novara
Descripción:
Observaciones:
Teoría: Texturas Semana 8 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo José Novara
Descripción:
Observaciones:
Práctica: Texturas Semana 9 Tipo: EP Duración: 4 hs
Docente/s responsable/s: Francisco Ruben Mainero, Cristian Ariel Yones
Descripción:
Observaciones:
Teoría: Curvas de Bezier y Splines Semana 9 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo José Novara
Descripción:
Observaciones:
Prácticas: Curvas Semana 10 Tipo: EP Duración: 4 hs
Docente/s responsable/s: Francisco Ruben Mainero, Cristian Ariel Yones
Descripción:
Observaciones:
Teoría: NURBS y Superficies Semana 10 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo José Novara
Descripción:
Observaciones:
Práctica: Superficies Semana 11 Tipo: EP Duración: 4 hs
Docente/s responsable/s: Francisco Ruben Mainero, Cristian Ariel Yones
Descripción:
Observaciones:
Consultas, y resolución de ejercicios de examen Semana 11 Tipo: PI Duración: 3 hs
Docente/s responsable/s: Pablo José Novara, Cristian Ariel Yones
Descripción:
Observaciones:
Parcial Integrador para Promoción Semana 12 Tipo: E Duración: 4 hs
Docente/s responsable/s: Pablo José Novara, Cristian Ariel Yones
Descripción:
Observaciones:
Coloquio post-parcial. Entregas de prácticos atrasados. Semana 12 Tipo: C Duración: 3 hs
Docente/s responsable/s: Pablo José Novara, Cristian Ariel Yones
Descripción:
Observaciones:
Recuperatorio del parcial Semana 13 Tipo: E Duración: 4 hs
Docente/s responsable/s: Pablo José Novara, Cristian Ariel Yones
Descripción:
Observaciones:
Asignación de Proyectos y Recuperatorio de Trabajos Prácticos Semana 13 Tipo: P/D Duración: 3 hs
Docente/s responsable/s: Francisco Ruben Mainero, Pablo José Novara, Cristian Ariel Yones
Descripción:
Observaciones:
Consultas sobre el proyecto final Semana 14 Tipo: P/D Duración: 3 hs
Docente/s responsable/s: Francisco Ruben Mainero, Pablo José Novara, Cristian Ariel Yones
Descripción:
Observaciones:
Consultas y Coloquio Integrador de Promoción Semana 14 Tipo: C Duración: 4 hs
Docente/s responsable/s: Francisco Ruben Mainero, Pablo José Novara, Cristian Ariel Yones
Descripción:
Observaciones:
Defensa de Proyectos Finales Semana 15 Tipo: E Duración: 4 hs
Docente/s responsable/s: Francisco Ruben Mainero, Pablo José Novara, Cristian Ariel Yones
Descripción:
Observaciones:
Defensa de Proyectos Finales Semana 15 Tipo: E Duración: 3 hs
Docente/s responsable/s: Francisco Ruben Mainero, Pablo José Novara, Cristian Ariel Yones
Descripción:
Observaciones:

Requerimientos para regularizar

Todos los trabajos prácticos y el trabajo final (tf) aprobados

Requerimientos para promover

Regular + 70% mínimo en parcial + coloquio oral aprobado.

Notas:
* Todo examen parcial o defensa de trabajo práctico puede ser recuperado, de resultar insuficiente el original. Toda calificación es la mayor de entre la original y la de su recuperatorio.
* La nota final del alumno promocionado se calculará como:
      40%*parcial + 40%*coloquio + 20%*tf

Examen final

Alumnos regulares

Examen oral, de teoría y métodos prácticos (sin programación)

Alumnos libres

1. Práctica a preferencia del alumno:
    Opción a) Práctico de programación en computadora a resolver en tres horas de examen.
    Opción b) Entrega tardía (evaluada y aprobada) de cada práctico y/o TF adeudados.
2. Examen oral, de teoría y métodos prácticos (sin programación).

Evaluaciones

Fecha Tipo Modalidad Descripción
10-11-2021 Parcial Escrita Parcial Integrador para Promoción.

Interpolación, Color e Iluminación, Transformaciones, Rasterización, Texturas, Curvas y Superficies, Intersecciones y Ordenamiento Espacial, Técnicas del espacio de la Imagen.

12-11-2021 Trabajo Práctico Oral Entrega de prácticos atrasados.

Oportunidad para presentar y defender TPs que no hayan sido presentados o aprobados previamente en sus correspondientes clases prácticas.

17-11-2021 Recuperatorio Escrita Recuperatorio del parcial.

Se mantiene la lista de temas original del parcial integrador.

24-11-2021 Coloquio Oral Coloquio para Promoción.

Solo para quienes tengan posibilidad de promocionar de acuerdo a la nota del parcial (o su recuperatorio).

01-12-2021 Otras Evaluaciones Oral Exposición y Defensa de Trabajos Finales.
03-12-2021 Otras Evaluaciones Oral Exposición y Defensa de Trabajos Finales.

Información complementaria

Recomendaciones para el estudio

El contexto de esta materia en la carrera la hace particularmente difícil; por lo tanto el alumno debe utilizar un tiempo extra similar al del dictado para comprender los temas y fijar los conocimientos. La mayoría de los alumnos no pueden absorber los conocimientos al ritmo que son expuestos en una clase teórica sin una lectura previa del material, por lo que se sugiere fuertemente la lectura crítica de los apuntes antes de la correspondiente clase. Esto es para aprovechar el tiempo de la clase teórica, que de otro modo resulta muy densa. Los conocimientos se adquieren en la lectura, pero se asientan con las explicaciones y la práctica. Del otro modo las explicaciones no responden a preguntas presentes del alumno sino a futuras preguntas que pueden surgirle cuando estudie o produzca el software y así, las clases teóricas resultan aburridas y prácticamente inútiles.

Materiales y Aula Virtual

Todo el material que la cátedra provea (apuntes de teoría, presentaciones utilizadas en las clases, grabaciones en video de clases de teoría, códigos fuentes para trabajos prácticos, ejemplos y enlaces adicionales, enunciados de examenes anteriores, etc) se publicará en la plataforma e-fic (http://e-fich.unl.edu.ar).

En la misma también estarán disponibles un foro para recibir notificaciones por parte de la cátedra y un foro en el cual los alumnos podrán realizar consultas de cualquier índole relacionadas a los contenidos o a la organización del cursado. Es responsabilidad del alumno acceder regularmente, ya que será el medio por el cual se comunicará cualquier cambio en la planificación pueda llegar a requerirse durante el cursado.

 

Sobre el desarrollo de los trabajos prácticos

Los Trabajos Prácticos y el Trabajo Final se realizarán en grupos de dos o tres alumnos. Excepcionalmente se puede aceptar distinta cantidad. La cátedra puede disolver un grupo si considera inadecuada su conformación.

La asistencia es optativa, sin ningún impacto en la calificación, pero los trabajos prácticos se entregan, analizan y evalúan durante las clases prácticas.

En cuanto al software, cualquier IDE o compilador para C++ que cuente con las bibliotecas mencionadas, en cualquier sistema operativo, será suficiente. La cátedra proveerá las instrucciones para instalar las bibliotecas requeridas en el IDE ZinjaI, y los archivos de configuración de proyecto para este entorno para la mayoría de las prácticas, pero el alumno podrá optar por cualquier otro entorno C++ y solicitar a la cátedra ayuda para la puesta en marcha de los programas.

 

Evaluaciones durante el cursado

Habrá un único examen parcial de caracter integrador escrito. El examen se centra en la teoría pero pueden incluir la descripción de un método práctico. La aprobación de este examen solo es necesaria para acceder a la promoción, pero no para obtener la regularidad de la materia.

Los prácticos se confeccionan y evalúan en clases, pudiendo completarse o mejorarse fuera del horario de clases. Por razones operativas, no se aceptará la defensa de más de dos prácticos por grupo por clase. De modo que los grupos pueden defender prácticos atrasados en cualquier clase práctica. Sin embargo se recomienda fuertemente trabajar cada semana sobre el práctico que corresponda según la planificación para ir en sincronía con la teoría y las explicaciones que se presentan en clases, y recuperar los prácticos pendientes no aprobados en la fecha especial que está previstas tal fin luego del parcial, o eventualmente en alguna de las fechas de consulta. Si no están todos aceptados al final del cuatrimestre, el alumno queda automáticamente libre. El trabajo diario en la práctica será evaluado en forma continua, considerando: calidad, eficiencia y estilo de la programación, documentación, presentación y defensa, grado de comprensión y explotación de los recursos y métodos proporcionados por la teoría subyacente, búsqueda de mejoras y alternativas más eficientes, etc. Aún cuando la confección es grupal, la calificación o aprobación es individual, a través de preguntas dirigidas y el análisis de los métodos de trabajo. El trabajo debe estar aceptable en términos de resultados y funcionamiento, pero aún así la calificación depende del trabajo y la exposición del alumno, y no del funcionamiento del programa.

El trabajo final consiste en el desarrollo de un práctico o tema nuevo o integrador. El grupo puede desarrollar algún tópico de teoría más avanzado o complementario a los que cubre la materia, o mostrar un programa de producción propia que integre varios de los contenidos estudiados (juego, demo, simulación, etc.). En todos los casos debe hacerse una exposición y defensa frente a la clase en las fechas previstas (última semana de clases). Además, el grupo deberá presentar previamente (en la fecha prevista, una semana antes de la defensa) por escrito una descripción breve del trabajo que expondrá, la cual deberá ser aprobada por la cátedra y respetada en la defensa final. El trabajo se realiza y defiende en grupo, pero la evaluación es nuevamente individual, con los mismos parámetros que la práctica.

Se pueden recuperar todas las instancias de prácticos y parciales, inclusive las aprobadas (para mejorar la calificación). En cada caso la nota es la mayor de entre la original y el recuperatorio. Los alumnos que quieran acceder a la promoción, además de aprobar el parcial, deben aprobar un coloquio oral integrador, en la fecha prevista en el cronograma. En caso de que el alumno no resulte promovido (o desee realizar el examen final para mejorar su calificación) la calificación será la resultante del examen final.

Examen final

El examen final para los alumnos regulares es un examen oral sobre la teoría y las metodologías prácticas, donde no se requiere que programen pero deben poder describir algún método de programación para un problema propuesto. El examen final para alumnos libres tiene antes una instancia de programación, que consiste en el desarrollo de un programa del mismo estilo que los prácticos propuestos en el curso y que deberá ser realizado íntegramente en el tiempo provisto. La segunda instancia es idéntica al examen para alumnos regulares.

Si el alumno libre presenta y aprueba todos los prácticos (adeudados) y un trabajo final (si lo adeudaba) antes de la fecha de examen, se podrá obviar la primera etapa. Los trabajos prácticos y/o el trabajo final aprobados durante el cursado se considerarán ya aprobados. La fecha deberá ser negociada con la cátedra, para realizar la entrega y defensa entre un mes y una semana antes del examen teórico. Una vez aprobadas las prácticas, el alumno gozará del mismo tratamiento que un alumno regular en el examen de teoría y métodos.