Crèdits
6
Tipus
Obligatòria d'especialitat (Gràfics i Realitat Virtual)
Requisits
Aquesta assignatura no té requisits
, però té capacitats prèvies
Departament
CS
Professorat
Responsable
- Oscar Argudo Medrano (oargudo@cs.upc.edu)
Altres
- Imanol Muñoz Pandiella (imanolm@cs.upc.edu)
- Marta Fairen Gonzalez (mfairen@cs.upc.edu)
- Pere Pau Vázquez Alcocer (ppau@cs.upc.edu)
Hores setmanals
Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0.5
Aprenentatge autònom
8.3
Competències
Gràfics i realitat virtual
Computació avançada
Genèriques
Ús solvent dels recursos d'informació
Actitud adequada davant el treball
Bàsiques
Objectius
-
Conèixer el maquinari gràfic actual i l'evolució dels paradigmes de programació de GPUs.
Competències relacionades: CEE1.1, CEE1.2, CEE1.3, CB6,
Subcompetences- Aprendre l'arquitectura de les GPUs programables.
- Conèixer els diferents llenguatges de desenvolupament d'aplicacions per a GPUs.
-
Conèixer la problemàtica i les limitacions del desenvolupament d'aplicacions gràfiques en temps real.
Competències relacionades: CEE1.1, CEE1.2, CEE1.3, CEE3.1,
Subcompetences- Entendre els fluxes de dades a les GPUs.
- Conèixer les diferents etapes del pipeline programable.
- Aprendre a utilitzar el pipeline gràfic per a fer càlculs generals.
-
Aprendre a desenvolupar aplicacions gràfiques en GPUs.
Competències relacionades: CG1, CG3, CTR4,
Subcompetences- Aprendre a programar en GLSL. Especificació del llenguatge i la integració amb OpenGL.
-
Aprendre els algoritmes de generació d'ombres avançats més utilitzats en l'actualitat.
Competències relacionades: CB7, CTR4, CTR5,
Subcompetences- Aprendre algoritmes de generació d'ombres dures, generació de penombres i oclusió ambient.
- Implementacions d'algoritmes d'ombres en la GPU.
-
Aprendre tècniques per l'acceleració del pintat tractant la geometria de l'escena.
Competències relacionades: CEE1.2, CTR4, CTR5,
Subcompetences- Càlcul de visibilitat. Reordenació de primitives. Batches.
-
Aprendre algoritmes de visualització basats en imatges.
Competències relacionades: CEE1.1, CG3, CEE1.2, CEE1.3, CEE3.1,
Subcompetences- Light Fields. Layered Depth Images. Relief Impostors.
Continguts
-
Introducció al maquinari gràfic.
L'objectiu d'aquest apartat és donar a conèixer el programari gràfic així com la seva evolució en els darrers anys. Es presentarà el pipeline fixe i el pipeline programable d'OpenGL, analitzant el fluxe de la informació i les fonts de dades disponibles. També s'introduiran els algoritmes de computació genèrica accelerats per la GPU. -
Introducció als llenguatges de programació de GPUs.
En aquest apartat parlarem de Cg i GLSL, així com també s'introduirà CUDA i OpenCL. S'aprofundirà sobretot en GLSL i els diferents elements de la programació: tipus, estructures de dades, estructures de control, definició de subprogrames i llibreries. -
Processament de geometria a la GPU.
La visualització realista en temps real precisa d'acceleració del procés de pintat des del punt de vista de la geometria i la il·luminació. Com que les escenes d'avui en dia són molt complexes, calen algoritmes per a processar-les de forma eficient. En aquest apartat es parlarà del processament de geometria utilitzant diferents aspectes de les GPUs, com poden ser el càlcul de visibilitat, la reordenació de primitives i l'agrupament de primitives. -
Generació d'ombres.
Un element molt important en la percepció del realisme d'una escena és la visualització d'ombres. Al llarg del temps, els algoritmes de visualització d'ombres s'han anat perfeccionant, passant d'ombres "dures" a penombres, fins a la generació del que s'anomena il·luminació ambient. En aquest apartat repassarem l'evolució i parlarem dels diferents mètodes de generació d'ombres utilitzant la GPU. -
Acceleració del pintat utilitzant imatges.
Amb l'aparició de les textures a la GPU, hi ha hagut moltes millores en el pintat realista que intenten aprofitar aquest element per a millorar el resultat. Inicialment, només per a substituir color, més endavant, per a simular detalls de geometria, i després, per a desar geometria i precàlculs d'il·luminació. En aquest apartat repassarem com es poden utilitzar textures per a simular diferents efectes que van des del bump-mapping fins a l'emmagatzemament de la geometria completa d'un objecte o molts a memòria de textura utilitzant impostors.
Activitats
Activitat Acte avaluatiu
Lectures
Material will be presented in lectures along the term. You are expected to conduct complementary readings that will be assigned on occasion, to be presented at a later date.- Teoria: Classes de teoria
Continguts:
Teoria
30h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
43.6h
Implementation of the practical assignments.
Some assignments will be proposed and the students must develop them, partially during the lab sessions.- Laboratori: Implementació d'aplicacions en GLSL.
- Aprenentatge autònom: Implementació d'aplicacions en GLSL.
Continguts:
Teoria
0h
Problemes
0h
Laboratori
12h
Aprenentatge dirigit
0h
Aprenentatge autònom
36h
Metodologia docent
Per a la realització de l'assignatura el professor proporcionarà continguts teòrics en classes de teoria, i materials en forma d'articles o manuals que els alumnes han de llegir i en alguns casos presentar.Durant les classes de teoria s'introduiran els conceptes més rellevants i es donaran directrius per a l'elaboració de les presentacions dels articles.
Durant les classes de laboratori es faran tres activitats: desenvolupar petits exercicis de GLSL, implementar un petit projecte a presentar al final del curs i fer presentacions d'articles de la literatura.
Mètode d'avaluació
El mètode d'avaluació tindrà tres parts: La presentació dels articles i assistència a classe, el desenvolupament del projecte i un examen final.La presentació dels articles i assistència a classe serà una nota (PRES) que dependrà de l'assistència a classe i la participació, del rigor i qualitat de la presentació de l'article que li toqui a l'estudiant, així com la capacitat de respondre a les preguntes dels alumnes i/o el professor sobre l'article. També es valorarà les preguntes que l'alumne realitzi en les presentacions dels altres alumnes.
El pes d'aquesta part (PRES) serà del 30% de la nota final.
L'altra part de l'avaluació (40%) se la durà el projecte de programació (PROJ).
L'examen final (EF) tindrà un pes del 30%.
La nota final serà doncs:
NF = PRES * 0.3 + PROJ * 0.4 + EF * 0.30
Bibliografia
Bàsic
-
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
Complementari
-
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