Profesorado
Responsable
- Carlos Andujar Gran ( andujar@cs.upc.edu )
Otros
- Alejandro Beacco Porres ( alejandro.beacco@upc.edu )
- Alejandro Ríos Jerez ( arios@cs.upc.edu )
- Alvaro Vinacua Pla ( alvar@cs.upc.edu )
- Antonio Chica Calaf ( achica@cs.upc.edu )
- Eduard Pujol Puig ( eduard.pujol.puig@upc.edu )
- Imanol Muñoz Pandiella ( imanolm@cs.upc.edu )
- Marta Fairen Gonzalez ( mfairen@cs.upc.edu )
- Oscar Argudo Medrano ( oargudo@cs.upc.edu )
- Víctor Franco Sánchez ( victor.franco.sanchez@upc.edu )
Horas semanales
Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
6
Competencias
Competencias técnicas comunes
- CT1.2A - Demostrar conocimiento y comprensión de los conceptos fundamentales de la programación y de la estructura básica de un computador. CEFB5. Conocimiento de la estructura, funcionamiento e interconexión de los sistemas informáticos, así como los fundamentos de su programación.
- CT1.2C - Interpretar, seleccionar y valorar conceptos, teorías, usos y desarrollos tecnológicos relacionados con la informática y su aplicación a partir de los fundamentos matemáticos, estadísticos y físicos necesarios. CEFB1: Capacidad para la resolución de los problemas matemáticos que puedan plantarse en la ingeniería. Aptitud para aplicar los conocimientos sobre: algebra, cálculo diferencial e integral i métodos numéricos; estadística y optimización.
- CT4.1 - Identificar las soluciones algorítmicas más adecuadas para resolver problemas de dificultad mediana.
- CT5.2 - Conocer, diseñar y utilizar de forma eficiente los tipos y las estructuras de datos más adecuados para la resolución de un problema.
- CT5.3 - Diseñar, escribir, probar, depurar, documentar y mantener código en un lenguaje de alto nivel para resolver problemas de programación aplicando esquemas algorítmicos y usando estructuras de datos.
- CT5.5 - Usar las herramientas de un entorno de desarrollo de software para crear y desarrollar aplicaciones.
Actitud frente al trabajo
- G8.3 - Tener motivación para el desarrollo profesional y para afrontar nuevos retos. Tener motivación para la mejora continua. Disponer de capacidad de trabajo en situaciones de falta de información.
Sostenibilidad y compromiso social
- G2.3 - Tener en cuenta las dimensiones social, económica y ambiental, y el derecho a la privacidad a aplicar soluciones y llevar a cabo proyectos coherentes con el desarrollo humano y la sostenibilidad.
Especialidad de computación
- CCO2.3 - Desarrollar y evaluar sistemas interactivos y de presentación de información compleja, y su aplicación a la resolución de problemas de diseño de interacción persona computadora.
- CCO2.6 - Diseñar e implementar aplicaciones gráficas, de realidad virtual, de realidad aumentada y videojuegos.
Objetivos
-
Comprender en profundidad las etapas del proceso de visualización proyectivo
Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6, -
Ser capaz de implementar los algoritmos asociados a las diferentes etapas del proceso de visualización
Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6, CT4.1, CT5.5, -
Comprender los modelos de il·luminación local
Competencias relacionadas: CCO2.6, -
Asimilar la funcionalidad, modelo de ejecución y programación de shaders en GLSL
Competencias relacionadas: CT1.2C, CCO2.6, -
Comprender y tener destreza implementando técnicas de interacción con escenas 3D
Competencias relacionadas: CCO2.3, CCO2.6, CT5.5, CT5.3, -
Conocer en profundidad los conceptos y algoritmos relacionados con la texturación de superficies
Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6, -
Comprender y ser capaz de desarrollar algoritmos para la simulación de sombras
Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6, -
Comprender y ser capaz de desarrollar algoritmos para la simulación de reflexiones especulares
Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6, -
Comprender y ser capaz de desarrollar algoritmos para la simulación de objetos transparentes
Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6, -
Asimilar los principales conceptos y algoritmos de iluminación global
Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6, CT4.1, -
Conocer el algoritmo de ray-tracing y sus variantes
Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6, CT4.1, -
Ser capaz de implementar funciones eficientes de intersección rayo-geometria
Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6, CT4.1, CT5.2, -
Identificar pros y contras de las estructuras de datos espaciales
Competencias relacionadas: CCO2.6, CT5.2, -
Ser capaz de desarrollar aplicaciones graficas interactivas para la visualización realista de escenas 3D
Competencias relacionadas: CCO2.3, CCO2.6, CT4.1, CT5.2, CT5.5, CT5.3, -
Comprender los elementos que integran la visualización realista.
Competencias relacionadas: CCO2.3, CCO2.6, -
Conocer las posibilidades de lo gráficos en la vida profesional, y desarrollar una actitud proactiva hacia la calidad.
Competencias relacionadas: G8.3, G2.3, -
Comprender el paper de los gráficos en el desarrollo de software con repercusión social, económica y/o ambiental, en áreas como la medicina, el diseño industrial y el patrimonio cultural.
Competencias relacionadas: G2.3,
Contenidos
-
Introducción a los gráficos
Paradigmas de visualización. Elementos que definen la visualización realista. Emisión, reflexión y transmisión de la luz. Comportamiento difundido y especular. Modelos de iluminación global y local. -
Aplicaciones de los gráficos
Papel de la informática gráfica en la sociedad. Principales aplicaciones con repercusión social, económica y/o ambiental. Aplicaciones en medicia, industria y patrimonio cultural. -
Proceso de visualización proyectivo
Transformaciones geométricas y sistemas de coordenadas. Envío de geometría. Procesamiento de vértices. Composición de primitivas y recortado. Rasterització e interpolación. Procesamiento de fragmentos. Operaciones por fragmento. Actualización del frame buffer. -
Desarrollo de shaders
Vertex shaders. Geometry Shaders. Fragmento shaders. Lenguaje GLSL. API por desarrollo de shaders. -
Interacción con escenas 3D
Selección de objetos. Manipulación de objetos. Manipulación de la cámara y navegación por la escena. -
Texturas 2D
Espacio de textura. Mapping inverso. Generación, transformación, e interpolación de coordenadas de textura. Projective texture mapping. Muestreado de texturas. Mipmapping. Samplers en GLSL. -
Simulación de sombras
Conceptos. Umbra y penumbra. Propiedades. Sombras por proyección sobre uno o más planes. Shadow mapping. -
Simulación de reflexiones especulares
Conceptos. Reflexión directa (con objetos virtuales). Simulación con texturas dinámicas. Environment mapping -
Simulación de objetos transparentes
Introducción. Dispersión. Refracción. Ley de Snell. Ángulo crítico. Ecuaciones de Fresnel. Alpha blending. -
Iluminación global
Magnitudes básicas de radiometría. BSDF. Ecuación general del rendering. Mecanismos de transporte de la luz. Clasificación de los algoritmos de iluminación global. -
Ray-tracing
Ray-tracing clásico. Oclusión ambiente -
Intersección Rayo-Geometría
Algoritmos de intersección rayo-geometría. Estructuras de datos espaciales. Subdivisión del espacio. Subdivisión de la escena.
Actividades
Actividad Acto evaluativo
Teoría
4h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
8h
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h
Trabajo sobre aplicaciones de los gráficos en la sociedad actual
Trabajo escrito sobre el papel de la informática gráfica en el desarrollo de software con repercusión social, económica y/o ambiental, en áreas como medicina, diseño y patrimonio cultural.Objetivos: 17 16
Semana: 15
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Charlas sobre gráficos
Objetivos: 17 16
Contenidos:
- 1 . Introducción a los gráficos
- 3 . Proceso de visualización proyectivo
- 4 . Desarrollo de shaders
- 5 . Interacción con escenas 3D
- 6 . Texturas 2D
- 7 . Simulación de sombras
- 8 . Simulación de reflexiones especulares
- 9 . Simulación de objetos transparentes
- 10 . Iluminación global
- 11 . Ray-tracing
- 12 . Intersección Rayo-Geometría
- 2 . Aplicaciones de los gráficos
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h
Metodología docente
La metodología docente está basada en clases semanales de teoría (2h) y de laboratorio (2h). En las clases de teoría se introducirán los conceptos, ecuaciones, técnicas y algoritmos de los contenidos de la asignatura, y se realizarán ejercicios que ayudarán a asimilar los conceptos y facilitar el desarrollo de las prácticas que se realizarán en las sesiones de laboratorio. Las sesiones de laboratorio consistirán por parte del profesor al introducir los guiones y los conceptos específicos requeridos para su desarrollo. Los alumnos deberán completar el diseño y la implementación de diferentes aplicaciones ligadas con los contenidos de la asignatura. Para facilitar su desarrollo, se suministrarán esqueletos de las aplicaciones que estarán parcialmente programadas.Las dos horas de clases de teoría se hacen semanalmente. El curso 2020/2021 las clases de teoria serán online, via videos.
Las dos horas de clases de laboratorio se hacen también semanalmente.
El aprendizaje autónomo se considera fundamental, pues los alumnos deberán profundizar fuera de clase algunos de los contenidos introducidos por el profesor, utilizando la documentación proporcionada y buscando su nueva.
El curso utiliza el lenguaje de programación C + +, junto con OpenGL y GLSL.
Método de evaluación
E = examen finalAA = otras actividades no presenciales
C1 = primer control de laboratorio
C2 = segundo control de laboratorio
Nota global = max(0.5E, 0.4E + 0.1AA) + 0.25C1 + 0.25C2
Bibliografía
Básico
-
Informàtica gràfica: un enfocament multimèdia
- Andújar, C.; Brunet, P.; Fairen, M.; Monclús, E.; Navazo, I.; Vàzquez, P.P.; Vinacua, A,
CPET,
2008.
-
Interactive computer graphics : a top-down approach with WebGL
- Angel, E.; Shreiner, D,
Pearson,
2015.
ISBN: 9781292019345
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004030149706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Real-time rendering
- Akenine-Moller, T. [et al.],
CRC Press,
2018.
ISBN: 9781138627000
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004153129706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
OpenGL shading language
- Rost, R.J.; Licea-Kane, B,
Addison-Wesley,
2010.
ISBN: 9780321637635
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003760359706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
3D computer graphics
- Watt, A.H,
Addison-Wesley,
2000.
ISBN: 0201398559
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002227789706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementario
-
Physically based rendering: from theory to implementation
- Pharr, M.; Jakob, W.; Humphreys, G,
Morgan Kaufmann Publisher,
2016.
ISBN: 9780128007099
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001589029706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
OpenGL programming guide: the official guide to learning OpenGL, version 4.5 with SPIR-V
- Kessenich, J.; Sellers, G.; Shreiner, D,
Addison-Wesley,
2017.
ISBN: 9780134495491
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004095509706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Geometric data structures for computer graphics
- Langetepe, E.; Zachmann, G,
AK Peters,
2006.
ISBN: 9781568812359
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003279129706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Web oficial de Qt http://qt.nokia.com/
- Especificació de les diferentes versions d'OpenGL. http://www.opengl.org/documentation/specs/