Computación Gráfica

Información Básica

  • Créditos: 3
  • Horas de clase: 5 / semana (3 horas clase, 2 horas taller)
  • Horas de trabajo independiente: 4 / semana
  • Pre-requisitos: Álgebra Lineal, Programación Orientada a Objetos
  • Tipo de curso: Núcleo de Formación Fundamental.

Descripción del Curso

Este curso presenta los fundamentos teóricos de la Computación Gráfica. Aquí, los estudiantes podrán desarrollar aplicaciones visuales en dos y tres dimensiones para un dispositivo computacional, para lo cual tendrán que utilizar librerías de programación especializadas en gráficos. Además, podrán identificar, usar y evaluar las estructuras de datos, modelos y técnicas necesarias crear estas aplicaciones. El curso se centra en el manejo y visualización de imágenes sin movimiento pero con un nivel de interactividad y realismo básico.

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, tubería gráfica, geometría computacional, modelo de cámara, fotorealismo, modelo de iluminación, GPU, malla, renderización, raster.
    3. Describir el proceso realizado en la tubería gráfica.
    4. Identificar los retos y limitaciones de la computación gráfica.
    5. Evaluar los modelos básicos de la computación gráfica en 2D y 3D.
    6. Familiarizarse con técnicas de generación procedimental de modelos.
    7. Comparar modelos de computación gráfica.
    8. Utilizar técnicas de iluminación para lograr una aproximación al fotorealismo.
    9. Calcular la profundidad de bit, conversiones entre modelos de color, transformaciones geométricas, cuaterniones, normales a la superficie y distancias.
    10. Identificar el hardware necesario para crear mundos virtuales de computación gráfica.
    11. Escoger y emplear modelos de 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 de dibujo y mallas.
    3. Programar la persistencia, carga y visualización 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 con un nivel de fotorealismo básico utilizando técnicas de iluminación y texturas.
    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.
  3. Explicar el proceso de 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

Competencias técnicas específicas que se desarrollan

  1. OpenGL en C++ y Visual Studio (intermedio).
  2. GLSL (intermedio).
  3. WebGL usando Three.js (básico).
  4. Blender (intermedio).
  5. OpenGL-ES con Visual Studio con Xamarin para Android y iOS (básico).
  6. DirectX para aplicaciones universales de Windows (básico).
  7. PovRay (básico).
  8. Gimp (básico).
  9. Paint.Net (básico).
  10. Visual Studio (intermedio).
  11. Unity 3D (básico)

Contenido

Capítulo 1: Creación y despliegue de un mundo virtual

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
1 3 Definición de la Computación Gráfica, geometría computacional, historia, aplicaciones (GUI, realidad virtual, visualización), hardware (GPU),modelos de color (CMYK, RGB), la tubería gráfica, mapas y profundidad de bits. Familiaridad [1, 2, 3, 12, 15, 16, 19]
2 2 Cálculos mapas y profundidad de bits. Utilización de herramientas para la generación de modelos visuales. Por ejemplo: Dibujo de primitivas en Blender y Paint.NET Evaluación [9, 24]
3 3 Formatos de imagen y compresión con y sin pérdida. Fundamentos de las imágenes digitales. Intensidad y filtros. Tecnologías graficas en la red. Evaluación [9, 17]
4 2 Taller de comparación y evaluación de formatos usando GIMP Evaluación [9, 28]
5 3 Objetos básicos de la computación gráfica, primitivas, mallas poligonal y sus estructura de datos. Evaluación [1, 2, 3, 14]
6 2 Taller de estructuras de datos. Evaluación [14]
7 3 Transformaciones geométricas y cuaterniones. Evaluación [1, 2, 3]
8 2 Taller de transformaciones geométricas. Evaluación [1, 2, 3]
9 3 Rasterización de un triangulo. Balance entre almacenamiento de imágenes rasterizadas y cálculo de imágenes vectoriales. Animación de imágenes estáticas. Familiaridad [1]
10 2 Programación de mundos virtuales en OpenGL, WebGL Uso [4, 27]
11 3 El modelo de cámara u observador, modos de proyección. Operaciones geométricas básicas (intersecciones y proximidad) Familiaridad [1, 2, 3]
12 2 Programación un mundo con mallas y una cámara móvil en OpenGL, WebGL Uso [4, 27]

Total de Horas: 30.

Sesión Horas de trabajo independiente Temas Bibliografía
1-2 4 Elaborar una presentación de 5 a 10 minutos de un artículo publicado no más de 4 años atrás que tenga que ver con la temática del curso. [20, 21, 22]
3-4 4 Tutoriales básicos de Blender. Elaborar presentación y bosquejo de idea de proyecto. Búsqueda de artículos relacionados al proyecto. [20, 21, 22, 24]
5-6 4 Búsqueda y selección de modelos gráficos para el proyecto final. Elaborar presentación y bosquejo de idea de proyecto. Lectura del capítulo de transformaciones geométricas del libro guía. [1, 2, 3]
7-8 4 Elaboración de un modelo en Blender. Lectura del capítulo de transformaciones geométricas del libro guía. [1, 2, 3, 24]
9-10 4 Lectura de los primeros 3 capítulos del Redbook de OpenGL. [4]
11-12 4 Programación de las mallas del proyecto en OpenGL. [4]

Total de Horas: 24

Capítulo 2: Fotorealismo

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
13 3 Sistema visual humano (adaptación a la luz, sensibilidad al ruido, “flickering”). Renderizado no fotorealista. Aspectos a considerar en el renderizado (“Motion blur”, enfoque, color) Familiaridad [1, 2, 3]
14 2 Renderizado pervasivo de objetos sencillos (OpenGL-ES en Android y iOS, DirectX en “Universal Windows Platform”) Uso [6, 11, 23]
15 3 Renderizado en la naturaleza, modelos de iluminación (Phong), materiales, fuentes de luz, (emisión y distribución de la luz). Uso [1, 2, 3]
16 2 Renderizado con shaders: GLSL y WebGL Uso [5, 27]
17 3 Visibilidad, oclusión, profundidad (Z-Buffer, Trazado de Rayos), Radiosidad. “Aliasing”. Evaluación [1, 7]
18 2 Practica con PovRay y Blender Uso [24, 26]
19 3 “Forward rendering” y “Backward rendering” y la ecuación de renderizado. Estructuras de datos para el renderizado. Grafos de escena. Subdivisión espacial. Evaluación [1, 2, 3]
20 2 Practica de texturas con OpenGL, WebGL y Blender Uso [4, 5, 24, 27]
21 3 Texturas de mapas de bit, texturas procedimentales, sombras. Mipmapping. Mapas de sombras. Mapas de normales Evaluación [1, 2, 3]
22 2 Practica de texturas con GLSL, WebGL y Blender Uso [4, 5, 24, 27]
23 3 Solución de problemas con Computación Gráfica Evaluación [1, 2, 3, 12]
24 2 Examen parcial Evaluación [1, 2, 3]

Total de Horas: 30.

Sesión Horas de trabajo independiente Temas Bibliografía
13-14 4 Lectura del capítulo de iluminación del Redbook de OpenGL y de los tutoriales en línea [4]
15-16 4 Desarrollo del tutorial de texturas de Blender. Preparación de presentación de avances. [24]
17-18 4 Preparación del examen parcial. [1, 2, 3]
19-20 4 Preparación del examen parcial. 1, 2, 3]
21-22 4 Preparación del examen parcial. [1, 2, 3]
23-24 4 Escritura del primer reporte de avances. [20, 21, 22]

Total de Horas: 24

Capítulo 3: Modelado avanzado

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
25 3 Triangulación Delaunay, subdivisión de superficies, extracción de superficies, modelado multi resolución, “Tesellation”, nivel de detalle (LOD). Familiaridad [1, 13, 14, 18]
26 2 Práctica en Blender Familiaridad [24]
27 3 Geometría constructiva de solidos. Modelos procedimentales y generativos, fractales, L-Systems,”graftals”. Familiaridad [3, 8]
28 2 Práctica de generación de objetos procedimentales en Blender y Unity 3D. Familiaridad [24, 25]
29 3 Representación de volúmenes, “voxels”, representaciones basadas en puntos Evaluación. [1]
30 2 Generación de un mundo virtual en Unity 3D. Uso [10]
31 3 Representación implícita de curvas y superficies, curvas y superficies paramétricas. Familiaridad [1, 3]
32 2 Implementación de una curva paramétrica con OpenGL. Uso [25]

Total de Horas: 20.

Sesión Horas de trabajo independiente Temas Bibliografía
25-26 4 Desarrollo del proyecto final. [4, 5]
27-28 4 Desarrollo del proyecto final. Presentación y reporte. [4, 5, 20, 21, 22]
29-30 4 Desarrollo del proyecto final. Presentación y reporte. [4, 5, 20, 21, 22]
31-32 4 Desarrollo del proyecto final. Presentación y reporte. [4, 5, 20, 21, 22]

Total de Horas: 16

Bibliografía

  1. John F. Hughes, Andries van Dam, Morgan McGuire, David F. Sklar, James D. Foley, Steven K. Feiner, Kurt Akeley. Computer Graphics: Principles and Practice (3rd Edition)Jul 20, 2013. ISBN-13: 078-5342399523. ISBN-10: 0321399528.
  2. Jung Hyun Han. 3D Graphics for Game Programming. Feb 17, 2011. ISBN-13: 978-1439827376. ISBN-10: 1439827370.
  3. Donald D. Hearn, M. Pauline Baker, Warren Carithers. Computer Graphics with Open GL (4th Edition) Nov 19, 2010. ISBN-13: 978-0136053583. ISBN-10: 0136053580.
  4. Dave Shreiner, Graham Sellers, John Kessenich, Bill Licea-Kane. OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3 (8th Edition). ISBN-13: 978-0321773036. ISBN-10: 0321773039.
  5. Randi J. Rost, Bill Licea-Kane, Dan Ginsburg, John Kessenich, Barthold Lichtenbelt, Hugh Malan, Mike Weiblen. OpenGL Shading Language (3rd Edition)Jul 30, 2009, ISBN-13: 978-0321637635. ISBN-10: 0321637631.
  6. Dan Ginsburg, Budirijanto Purnomo, Dave Shreiner, Aaftab Munshi. OpenGL ES 3.0 Programming Guide (2nd Edition)Mar 10, 2014. ISBN-13: 978-0321933881. ISBN-10: 0321933885.
  7. Eric Haines, Pat Hanrahan, Robert L. Cook, James Arvo, David Kirk, Paul S. Heckbert, Andrew S. Glassner. An Introduction to Ray tracing (The Morgan Kaufmann Series in Computer Graphics)Jun 1, 1989. ISBN-13: 978-0122861604. ISBN-10: 0122861604.
  8. Gustavo N. RUBIANO O. Fractales para profanos. Segunda reimpresión, 2002. ISBN-10: 9588051991. ISBN-13: 978-9588051994.
  9. George Chapungu. Digital image processing basics. May 29, 2012. ASIN: B0088WC39I.
  10. P Patrick Felicia. Unity 5 from Zero to Proficiency (Foundations): A step-by-step guide to creating your first game. Feb 25, 2016. ISBN-10: 1518699898. ISBN-13: 978-1518699894.
  11. Frank Luna. Introduction to 3D Game Programming with DirectX 12 (Computer Science). March 24, 2016. ISBN-10: 1942270062. ISBN-13: 978-1942270065.
  12. Moreno Sánchez, I., & Navarro Newball, A. ” Comunicación cultural y TIC: La representación accesible de la cultura Chimú.” Historia Y Comunicación Social, 18, 541-554 ISSN: 1137-0734. 2013. http://dx.doi.org/10.5209/rev_HICS.2013.v18.43987.
  13. ANDRES ADOLFO NAVARRO NEWBALL, FRANCISCO JULIAN HERRERA BOTERO, DIEGO FERNANDO LOAIZA BUITRAGO, ” Anatomy guided bottom up creature skinning.” Revista S&T: Sistemas & Telemática. ISSN: 1692-5238. v.9 fasc.17 p.9 – 21 ,2011.
  14. ANDRES ADOLFO NAVARRO NEWBALL, GEOFF WYVILL, BRENDAN MCCANE, “Efficient mesh generation using subdivisión surfaces.” Revista S&T: Sistemas & Telemática/ ISSN: 1692-5238. v.6 fasc.12 p.111 – 126 ,2008.
  15. ANDRES ADOLFO NAVARRO NEWBALL, FRANCISCO JULIAN HERRERA BOTERO, ANTONIO ALEJANDRO MATTA GÓMEZ, DIEGO FERNANDO LOAIZA, “Rebuilding the Past from the City of Santiago de Cali, Colombia, South America. An Example of Virtual Heritage Preservation” The 8th International Symposium on Virtual Reality, Archaeology and Intelligent Cultural Heritage. Short and Project Papers from VAST2007. ISBN: 978-963-8046-89-5. ed: Epoch, p.62 – 68 ,2007.
  16. ANDRES ADOLFO NAVARRO NEWBALL, FRANCISCO JULIAN HERRERA BOTERO, CESAR AUGUSTO MARIN, “Using an interactive module to enhance and understand 3D cavity navigation: a patient’s view.” Journal Of Telemedicine And Telecare. ISSN: 1357-633X. v.13 fasc.S1 p.13 – 15 ,2007.
  17. Perea-Tanaka, Carlos F.; Moreno, Isidro; Prakash, Edmond C.; Navarro-Newball, Andres A. “Towards tantalluc: Interactive mobile augmented reality application for the Museo de América in Madrid.” Computing Colombian Conference (10CCC), 2015 10th , vol., no., pp.164-171, 21-25 Sept. 2015, doi: 10.1109/ColumbianCC.2015.7333427. ISBN 978-1-4673-9464-2.
  18. A.A. Navarro- Newball (2010). Graphics Lab, Computer Science Department, University of Otago, Dunedin, New Zealand. Thesis: Londra, A Dog Facial Animation Model. Supervisors: Prof. Geoff Wyvill; Dr. Brendan McCane.
  19. A.A. Navarro- Newball (1998). Computer Science Department, University of Hull, Hull, UK. Dissertation: The Implementation of a Windows 95 based virtual environments knee arthroscopy training system (PC VEKATS). Supervisor: Mr. Derek Wills
  20. ACM Digital Library.
  21. IEEE Xplore.
  22. Springer link.
  23. Directx 12 Programming Guide. https://msdn.microsoft.com/en-us/library/windows/desktop/dn899121(v=vs.85).aspx.

Instalaciones

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

Material de este semestre