Gráficos

Créditos
6
Tipos
Obligatoria de especialidad (Computación)
Requisitos
  • Prerrequisito: IDI
  • Correquisito: PROP
Departamento
CS
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

  • Carlos Andujar Gran ( )

Otros

  • 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 ( )

Horas semanales

Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
6

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

  1. Comprender en profundidad las etapas del proceso de visualización proyectivo
    Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6,
  2. 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,
  3. Comprender los modelos de il·luminación local
    Competencias relacionadas: CCO2.6,
  4. Asimilar la funcionalidad, modelo de ejecución y programación de shaders en GLSL
    Competencias relacionadas: CT1.2C, CCO2.6,
  5. Comprender y tener destreza implementando técnicas de interacción con escenas 3D
    Competencias relacionadas: CCO2.3, CCO2.6, CT5.5, CT5.3,
  6. Conocer en profundidad los conceptos y algoritmos relacionados con la texturación de superficies
    Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6,
  7. Comprender y ser capaz de desarrollar algoritmos para la simulación de sombras
    Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6,
  8. Comprender y ser capaz de desarrollar algoritmos para la simulación de reflexiones especulares
    Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6,
  9. Comprender y ser capaz de desarrollar algoritmos para la simulación de objetos transparentes
    Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6,
  10. Asimilar los principales conceptos y algoritmos de iluminación global
    Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6, CT4.1,
  11. Conocer el algoritmo de ray-tracing y sus variantes
    Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6, CT4.1,
  12. Ser capaz de implementar funciones eficientes de intersección rayo-geometria
    Competencias relacionadas: CT1.2A, CT1.2C, CCO2.6, CT4.1, CT5.2,
  13. Identificar pros y contras de las estructuras de datos espaciales
    Competencias relacionadas: CCO2.6, CT5.2,
  14. 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,
  15. Comprender los elementos que integran la visualización realista.
    Competencias relacionadas: CCO2.3, CCO2.6,
  16. 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,
  17. 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

  1. 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.
  2. 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.
  3. 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.
  4. Desarrollo de shaders
    Vertex shaders. Geometry Shaders. Fragmento shaders. Lenguaje GLSL. API por desarrollo de shaders.
  5. 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.
  6. 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.
  7. Simulación de sombras
    Conceptos. Umbra y penumbra. Propiedades. Sombras por proyección sobre uno o más planes. Shadow mapping.
  8. Simulación de reflexiones especulares
    Conceptos. Reflexión directa (con objetos virtuales). Simulación con texturas dinámicas. Environment mapping
  9. Simulación de objetos transparentes
    Introducción. Dispersión. Refracción. Ley de Snell. Ángulo crítico. Ecuaciones de Fresnel. Alpha blending.
  10. 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.
  11. Ray-tracing
    Ray-tracing clásico. Oclusión ambiente
  12. 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:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Aplicaciones de los gráficos

Desenvolupament dels continguts del tema corresponent.
Objetivos: 17 16
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Proceso de visualización proyectivo

Desenvolupament dels continguts del tema corresponent.
Objetivos: 1 2 14
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Desarrollo de shaders

Desenvolupament dels continguts del tema corresponent.
Objetivos: 1 4 14
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
8h
Aprendizaje dirigido
0h
Aprendizaje autónomo
20h

Interacción con escenas 3D

Desenvolupament dels continguts del tema corresponent.
Objetivos: 5 14
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h

Texturas 2D

Desenvolupament dels continguts del tema corresponent.
Objetivos: 6
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
8h

Examen parcial

Examen parcial de los primeros temas de la asignatura.
Objetivos: 17 15 1 2 3 4 5 6
Semana: 7
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

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
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Simulación de sombras

Desenvolupament dels continguts del tema corresponent.
Objetivos: 7 14
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
8h

Simulación de reflexiones especulares

Desenvolupament dels continguts del tema corresponent.
Objetivos: 8 14
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
8h

Simulación de objetos transparentes

Desenvolupament dels continguts del tema corresponent.
Objetivos: 9 14
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Iluminación global

Desenvolupament dels continguts del tema corresponent.
Objetivos: 10
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Ray-tracing

Desenvolupament dels continguts del tema corresponent.
Objetivos: 10 11 14
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h

Intersección rayo-geometría

Desenvolupament dels continguts del tema corresponent.
Objetivos: 13 14
Contenidos:
Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

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
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

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)
Tipo: examen de teoría
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

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
Tipo: entrega
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h


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:

Complementaria:

Web links