Representación Realista de Alta Velocidad

Usted está aquí

Créditos
6
Tipos
Obligatoria de especialidad (Gráficos y Realidad Virtual)
Requisitos
Esta asignatura no tiene requisitos, pero tiene capacidades previas
Departamento
CS
El objetivo de este curso es presentar varias técnicas y algoritmos para renderización realista. A lo largo del curso, visitaremos algunos conceptos como sombras, oclusión ambiente, etc., y presentaremos cómo lograr esos efectos utilizando GPU.

Profesorado

Responsable

  • Pere Pau Vázquez Alcocer ( )

Otros

  • Imanol Muñoz Pandiella ( )

Horas semanales

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

Competencias

Competencias Técnicas de cada especialidad

Computer graphics and virtual reality

  • CEE1.1 - Capacidad de comprender y saber aplicar las tecnologías actuales y las que en el futuro se utilicen para el diseño y evaluación de aplicaciones gráficas interactivas en tres dimensiones, tanto cuando prime la calidad de imagen como cuando lo haga la interactividad o la velocidad, así como comprender los compromisos inherentes y las razones que los ocasionan.
  • CEE1.2 - Capacidad de comprender y saber aplicar las tecnologías actuales y las que en el futuro se utilicen para la evaluación, implementación y explotación de entornos de realidad virtual y/o aumentada, y de interfaces de usuario 3D basadas en dispositivos de interacción natural.
  • CEE1.3 - Capacidad de integrar las tecnologías mencionadas en las competencias CEE1.1 y CEE1.2 con otras tecnologías de tratamiento digital de la información para construir nuevas aplicaciones; así como efectuar contribuciones significativas en equipos multidisciplinares que usen la informática gráfica.

Advanced computing

  • CEE3.1 - Capacidad para identificar barreras computacionales y analizar la complejidad de problemas computacionales en diversos ámbitos de la ciencia y la tecnología; así como para representar problemas de alta complejidad en estructuras matemáticas que puedan ser tratadas eficientemente con esquemas algorítmicos.

Competencias Técnicas Genéricas

Genéricas

  • CG1 - Capacidad para aplicar el método científico en el estudio y análisis de fenómenos y sistemas en cualquier ámbito de la Informática, así como en la concepción, diseño e implantación de soluciones informáticas innovadoras y originales.
  • CG3 - Capacidad para el modelado matemático, cálculo y diseño experimental en centros tecnológicos y de ingeniería de empresa, particularmente en tareas de investigación e innovación en todos los ámbitos de la Informática.

Competencias Transversales

Uso solvente de los recursos de información

  • CTR4 - Gestionar la adquisición, la estructuración, el análisis y la visualización de datos e información del ámbito de la ingeniería informática y valorar de forma crítica los resultados de esta gestión.

Actitud frente al trabajo

  • CTR5 - 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.

Básicas

  • CB6 - Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
  • CB7 - Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios

Objetivos

  1. Conocer el hardware gráfico actual y la evolución de los paradigmas de programación de GPUs.
    Competencias relacionadas: CEE1.1, CEE1.2, CEE1.3, CB6,
    Subcompetences:
    • Aprender la arquitectura de las GPUs programables.
    • Conocer los diferentes lenguajes de desarrollo de aplicaciones para GPUs.
  2. Conocer la problemática y las limitaciones del desarrollo de aplicaciones gráficas en tiempo real.
    Competencias relacionadas: CEE1.1, CEE1.2, CEE1.3, CEE3.1,
    Subcompetences:
    • Entender los flujos de datos en las GPUs.
    • Conocer las diferentes etapas del pipeline programable.
    • Aprender a utilizar el pipeline gráfico para hacer cálculos generales.
  3. Aprender a desarrollar aplicaciones gráficas en GPUs.
    Competencias relacionadas: CG1, CG3, CTR4,
    Subcompetences:
    • Aprender a programar en GLSL. Especificación del lenguaje y la integración con OpenGL.
  4. Aprender los algoritmos de generación de sombras avanzados más utilizados en la actualidad.
    Competencias relacionadas: CB7, CTR4, CTR5,
    Subcompetences:
    • Aprender algoritmos de generación de sombras duras, generación de penumbras y oclusión ambiente.
    • Implementaciones de algoritmos de sombras en la GPU.
  5. Aprender técnicas para la aceleración del pintado tratando la geometría de la escena.
    Competencias relacionadas: CEE1.2, CTR4, CTR5,
    Subcompetences:
    • Cálculo de visibilidad. Reordenación de primitivas. Batches.
  6. Aprender algoritmos de visualización basados ​​en imágenes.
    Competencias relacionadas: CEE1.1, CG3, CEE1.2, CEE1.3, CEE3.1,
    Subcompetences:
    • Light Fields. Layered Depth Images. Relief Impostors.

Contenidos

  1. Introducción al hardware gráfico.
    El objetivo de este apartado es dar a conocer el software gráfico así como su evolución en los últimos años. Se presentará el pipeline fijo y el pipeline programable de OpenGL, analizando el flujo de la información y las fuentes de datos disponibles. También se introducirán los algoritmos de computación genérica acelerados por la GPU.
  2. Introducción a los lenguajes de programación de GPUs.
    En este apartado hablaremos de Cg y GLSL, así como también introducirá CUDA y OpenCL. Se profundizará sobre todo en GLSL y los diferentes elementos de la programación: tipos, estructuras de datos, estructuras de control, definición de subprogramas y librerías.
  3. Procesamiento de geometría en la GPU.
    La visualización realista en tiempo real precisa de aceleración del proceso de pintado desde el punto de vista de la geometría y la iluminación. Como las escenas de hoy en día son muy complejas, necesitan algoritmos para procesar de forma eficiente. En este apartado se hablará del procesamiento de geometría utilizando diferentes aspectos de las GPUs, como pueden ser el cálculo de visibilidad, la reordenación de primitivas y el agrupamiento de primitivas.
  4. Generación de sombras.
    Un elemento muy importante en la percepción del realismo de una escena es la visualización de sombras. A lo largo del tiempo, los algoritmos de visualización de sombras se han ido perfeccionando, pasando de sombras "duras" en penumbras, hasta la generación del llamado iluminación ambiente. En este apartado repasaremos la evolución y hablaremos de los diferentes métodos de generación de sombras utilizando la GPU.
  5. Aceleración del proceso de pintado usando imágenes.
    Con la aparición de las texturas en la GPU, ha habido muchas mejoras en el pintado realista que intentan aprovechar este elemento para mejorar el resultado. Inicialmente, sólo para sustituir color, más adelante, para simular detalles de geometría, y después, para guardar geometría y precálculo de iluminación. En este apartado repasaremos cómo se pueden utilizar texturas para simular diferentes efectos que van desde el bump-mapping hasta el almacenamiento de la geometría completa de un objeto o muchos a memoria de textura utilizando impostores.

Actividades

Actividad Acto evaluativo


Sesiones de teoría

El material se presenta en las clases a lo largo del curso. Se espera llevar a cabo lecturas complementarias que serán asignados en alguna ocasión, que se presentará en una fecha posterior.
Objetivos: 1 2 3
Contenidos:
Teoría
30h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
43.6h

Implementación de las tareas prácticas.

Se propondrán algunas asignaciones y los estudiantes deben desarrollarlos, parcialmente durante las sesiones de laboratorio.
Objetivos: 1 2 3
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
12h
Aprendizaje dirigido
0h
Aprendizaje autónomo
36h

Presentación de artículos

Los trabajos serán asignados a los estudiantes y serán presentados y discutidos por los alumnos.
Objetivos: 2 3 5
Contenidos:
Teoría
0h
Problemas
6h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
20h

Examen final

Al final del curso habrá un examen que puede ser que se tenga que realizar en casa.
Objetivos: 1 2 4 3 5 6
Semana: 18
Tipo: examen final
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Metodología docente

Para la realización de la asignatura el profesor proporcionará contenidos teóricos en clases de teoría, y materiales en forma de artículos o manuales que los alumnos deben leer y en algunos casos presentar.
Durante las clases de teoría se introducirán los conceptos más relevantes y se darán directrices para la elaboración de las presentaciones de los artículos.
Durante las clases de laboratorio se realizarán tres actividades: desarrollar pequeños ejercicios de GLSL, implementar un pequeño proyecto a presentar al final del curso y hacer presentaciones de artículos de la literatura.

Método de evaluación

El método de evaluación tendrá tres partes: La presentación de los artículos y asistencia a clase, el desarrollo del proyecto y un examen final.
La presentación de los artículos y asistencia a clase será una nota (PRES) que dependerá de la asistencia a clase y la participación, del rigor y calidad de la presentación del artículo que le toque al estudiante, así como la capacidad de responder a las preguntas de los alumnos y / o el profesor sobre el artículo. También se valorará las preguntas que el alumno realice en las presentaciones de los otros alumnos.
El peso de esta parte (PRES) será del 30% de la nota final.
La otra parte de la evaluación (40%) se la llevará el proyecto de programación (PROJ).
El examen final (EF), que puede ser realizado en casa, tendrá un peso del 30%.
La nota final será pues:
NF = PRES * 0.3 + PROJ * 0.4 + EF * 0.30

Bibliografía

Básica:

Complementaria:

Web links

Capacidades previas

Se espera que los alumnos conozcan OpenGL y hayan cursado alguna asignatura de gráficos antes de realizar esta asignatura. En particular, los alumnos necesitan conocer al menos, cómo implementar programas en OpenGL con vertex shaders, fragment shaders y eventualmente geometry shaders. Se espera que sepan enviar geometría a pintar y que sean capaces de utilizar otras funcionalidades como la texturación.