Créditos
6
Tipos
Obligatoria de especialidad (Gráficos y Realidad Virtual)
Requisitos
Esta asignatura no tiene requisitos
, pero tiene capacidades previas
Departamento
CS
Profesorado
Responsable
- Oscar Argudo Medrano ( oargudo@cs.upc.edu )
Otros
- Imanol Muñoz Pandiella ( imanolm@cs.upc.edu )
- Marta Fairen Gonzalez ( mfairen@cs.upc.edu )
- Pere Pau Vázquez Alcocer ( ppau@cs.upc.edu )
Horas semanales
Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0.5
Aprendizaje autónomo
8.3
Competencias
Computer graphics and virtual reality
Advanced computing
Genéricas
Uso solvente de los recursos de información
Actitud frente al trabajo
Básicas
Objetivos
-
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.
-
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.
-
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.
-
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.
-
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.
-
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
-
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. -
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. -
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. -
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. -
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
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) tendrá un peso del 30%.
La nota final será pues:
NF = PRES * 0.3 + PROJ * 0.4 + EF * 0.30
Bibliografía
Básico
-
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 -
Real-time rendering
- Akenine-Möller, T. [et al.],
CRC Press,
2018.
ISBN: 9781138627000
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004153129706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementario
-
OpenGL superbible: comprehensive tutorial and reference
- Wright, R.S. [et al.],
Addison-Wesley,
2011.
ISBN: 9780321712615
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003812729706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Wiki GLSL http://en.wikipedia.org/wiki/GLSL
- Wiki OpenGL http://en.wikipedia.org/wiki/OpenGL
- Official page of OpenGL http://www.opengl.org