L'objectiu d'aquest curs és presentar diverses tècniques i algorismes de representació realista. Al llarg del recorregut visitarem alguns conceptes com ara ombres, oclusió ambient, etc., i introduirem com aconseguir aquests efectes usant GPU.
Professorat
Responsable
Oscar Argudo Medrano (
)
Altres
Imanol Muñoz Pandiella (
)
Marta Fairen Gonzalez (
)
Pere Pau Vázquez Alcocer (
)
Hores setmanals
Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0.5
Aprenentatge autònom
8.3
Competències
Competències Tècniques de cada especialitat
Gràfics i realitat virtual
CEE1.1 - Capacitat de comprendre i saber aplicar les tecnologies actuals i les que en el futur es facin servir per al disseny i avaluació d'aplicacions gràfiques interactives en tres dimensions, tant quan prevalgui la qualitat d'imatge com quan ho faci la interactivitat o la velocitat, així com comprendre els compromisos inherents i les raons que els ocasionen.
CEE1.2 - Capacitat de comprendre i saber aplicar les tecnologies actuals i les que en el futur es facin servir per a l'avaluació, implementació i explotació d'entorns de realitat virtual i/o augmentada, i d'interfícies d'usuari 3D basades en dispositius d'interacció natural.
CEE1.3 - Capacitat d'integrar les tecnologies esmentades en les competències CEE1.1 i CEE1.2 amb altres tecnologies de tractament digital de la informació per construir noves aplicacions; així com efectuar contribucions significatives en equips multidisciplinaris que facin servir la informàtica gràfica.
Computació avançada
CEE3.1 - Capacitat per a identificar barreres computacionals i analitzar la complexitat de problemes computacionals en diversos àmbits de la ciència i la tecnologia; així com per representar problemes d'alta complexitat en estructures matemàtiques que puguin ser tractades eficientment amb esquemes algorítmics.
Competències Tècniques Generals
Genèriques
CG1 - Capacitat per aplicar el mètode científic en l'estudi i anàlisi de fenòmens i sistemes en qualsevol àmbit de la Informàtica, així com en la concepció, disseny i implantació de solucions informàtiques innovadores i originals.
CG3 - Capacitat per al modelatge matemàtic, càlcul i disseny experimental en centres tecnològics i d'enginyeria d'empresa, particularment en tasques de recerca i innovació en tots els àmbits de la Informàtica.
Competències Transversals
ús solvent dels recursos d'informació
CTR4 - Gestionar l'adquisició, l'estructuració, l'anàlisi i la visualització de dades i d'informació de l'àmbit de l'enginyeria informàtica, i valorar de forma crítica els resultats d'aquesta gestió.
Actitud adequada davant el treball
CTR5 - Tenir motivació per a la realització professional i per a afrontar nous reptes, tenir una visió àmplia de les possibilitats de la carrera professional en l'àmbit de l'enginyeria en informàtica. Sentir-se motivat per la qualitat i la millora contínua, i actuar amb rigor en el desenvolupament professional. Capacitat d'adaptació als canvis organitzatius o tecnològics. Capacitat de treballar en situacions de carència d'informació i/o amb restriccions temporals i/o de recursos.
Bàsiques
CB6 - Que els estudiants sàpiguen aplicar els coneixements adquirits y la seva capacitat de resolució de problemes en entorns nous o poc coneguts dins de contexts més amplis (o multidisciplinaris) relacionats amb la seva àrea d'estudi.
CB7 - Que els estudiants siguin capaços d'integrar coneixements i enfrontar-se a la complexitat de formular judicis a partir d'una informació que, essent incomplerta o limitada, inclogui reflexions sobre les responsabilitats socials i ètiques vinculades a l'aplicació dels seus coneixements i judicis.
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:
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
ActivitatActe 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.
At the end of the term you will have a final exam, which may be a take-home. Objectius:124356 Setmana:
18
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
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), que pot ser realitzat a casa, tindrà un pes del 30%.
La nota final serà doncs:
NF = PRES * 0.3 + PROJ * 0.4 + EF * 0.30
S'espera que els alumnes coneguin OpenGL i hagin cursat alguna assignatura de gràfics abans de fer aquesta assignatura. En particular, els alumnes necessiten conèixer com a mínim, com implementar programes en OpenGL amb vertex shaders, fragment shaders i eventualment geometry shaders. S'espera que sàpiguen enviar geometria a pintar i que siguin capaços d'emprar altres funcionalitats com la texturació.