Tipos
Obligatoria de especialidad (Computación)
Requisitos
- Prerrequisito:
IDI
- Correquisito:
PROP
Se trata de un curso sobre desarrollo de aplicaciones 3D interactivas que cubre aspectos de visualización, interacción y realismo. El desarrollo se fundamentará en C++, OpenGL y GLSL.
Profesorado
Responsable
Otros
-
Alejandro Beacco Porres (
)
-
Alejandro Ríos Jerez (
)
-
Alvaro Vinacua Pla (
)
-
Antonio Chica Calaf (
)
-
Imanol Muñoz Pandiella (
)
-
Jose Luis Pontón Martinez (
)
-
Marta Fairen Gonzalez (
)
-
Oscar Argudo Medrano (
)
-
Víctor Franco Sánchez (
)
Competencias
Competencias Técnicas
Competencias técnicas comunes
-
CT1 - Demostrar conocimiento y comprensión de hechos esenciales, conceptos, principios y teorías relativas a la informática y a sus disciplinas de referencia.
-
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 - Demostrar conocimiento y capacidad de aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y la complejidad de los algoritmos
-
CT4.1
- Identificar las soluciones algorítmicas más adecuadas para resolver problemas de dificultad mediana.
-
CT5 - Analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, escogiendo el paradigma y los lenguajes de programación más adecuados.
-
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.
Competencias Transversales
Actitud frente al trabajo
-
G8 [Avaluable] - Tener motivación para la realización profesional y para afrontar nuevos retos, así como una visión amplia de las posibilidades de la carrera profesional en el ámbito de la Ingeniería en Informática. Tener motivación por la calidad y la mejora continua, y actuar con rigor en el desarrollo profesional. Capacidad de adaptación a los cambios organizativos o tecnológicos. Capacidad de trabajar en situaciones de falta de información y/o con restricciones temporales y/o de recursos.
-
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 [Avaluable] - Conocer y comprender la complejidad de los fenómenos económicos y sociales típicos de la sociedad del bienestar. Ser capaz de analizar y valorar el impacto social y medioambiental
-
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.
Competencias Técnicas de cada especialidad
Especialidad de computación
-
CCO2 - Desarrollar de forma efectiva y eficiente los algoritmos y el software apropiados para resolver problemas complejos 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
Introducción a los gráficos
Desenvolupament dels continguts del tema corresponent.
Objetivos:
17
15
Contenidos:
Aplicaciones de los gráficos
Desenvolupament dels continguts del tema corresponent.
Objetivos:
17
16
Contenidos:
Proceso de visualización proyectivo
Desenvolupament dels continguts del tema corresponent.
Objetivos:
1
2
14
Contenidos:
Desarrollo de shaders
Desenvolupament dels continguts del tema corresponent.
Objetivos:
1
4
14
Contenidos:
Interacción con escenas 3D
Desenvolupament dels continguts del tema corresponent.
Objetivos:
5
14
Contenidos:
Texturas 2D
Desenvolupament dels continguts del tema corresponent.
Objetivos:
6
Contenidos:
Examen parcial
Examen parcial de los primeros temas de la asignatura.
Objetivos:
17
15
1
2
3
4
5
6
Semana:
7
Prueba de laboratorio 1
Prueba sobre los conceptos, técnicas, algoritmos, lenguajes y APIs relativas a la primera práctica de laboratorio.
Objetivos:
17
15
1
2
3
4
5
6
Semana:
8
Simulación de sombras
Desenvolupament dels continguts del tema corresponent.
Objetivos:
7
14
Contenidos:
Simulación de reflexiones especulares
Desenvolupament dels continguts del tema corresponent.
Objetivos:
8
14
Contenidos:
Simulación de objetos transparentes
Desenvolupament dels continguts del tema corresponent.
Objetivos:
9
14
Contenidos:
Iluminación global
Desenvolupament dels continguts del tema corresponent.
Objetivos:
10
Contenidos:
Ray-tracing
Desenvolupament dels continguts del tema corresponent.
Objetivos:
10
11
14
Contenidos:
Intersección rayo-geometría
Desenvolupament dels continguts del tema corresponent.
Objetivos:
13
14
Contenidos:
Prueba de laboratorio 2
Prueba sobre los conceptos, técnicas, algoritmos, lenguajes y APIs relativas al laboratorio.
Objetivos:
17
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Semana:
14
Examen final
Examen final de todo el temario
Objetivos:
17
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Semana:
15 (Fuera de horario lectivo)
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
Charlas sobre gráficos
Objetivos:
17
16
Contenidos:
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 final
AA = 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ásica:
-
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
Complementaria:
-
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