Un nombre creixent d'aplicacions necessiten representar i visualitzar escenes 3D de forma interactiva en àrees tan diverses com la visualització científica, el disseny gràfic, la realitat virtual,
l'art digital i els videojocs. El tema central d'aquesta assignatura és el desenvolupament d'aplicacions gràfiques interactives per a la visualització realista d'escenes 3D. Cobrirem els aspectes més rellevants pel desenvolupament d'aquestes aplicacions, incloent-hi la visualització (procés de visualització, models d'il·luminació locals i globals, shaders) i la interacció (navegació, selecció i manipulació d'objectes 3D). Estudiarem tècniques per afegir realisme, com ara textures, ombres i reflexions. Durant el curs l'estudiant haurà de desenvolupar aplicacions 3D interactives amb C++, OpenGL i GLSL.
Professorat
Responsable
Carlos Andujar Gran (
)
Altres
Alejandro Beacco Porres (
)
Alejandro Ríos Jerez (
)
Antonio Chica Calaf (
)
Imanol Muñoz Pandiella (
)
Jose Luis Pontón Martinez (
)
Marta Fairen Gonzalez (
)
Oscar Argudo Medrano (
)
Víctor Franco Sánchez (
)
Hores setmanals
Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
6
Competències
Competències Tècniques
Competències tècniques comunes
CT1 - Demostrar coneixement i comprensió de fets essencials, conceptes, principis i teories relatives a la informàtica i a les seves disciplines de referència.
CT1.2A
- Interpretar, seleccionar i valorar conceptes, teories, usos i desenvolupaments tecnològics relacionats amb la informàtica i la seva aplicació a partir dels fonaments matemàtics, estadístics i físics necessaris. CEFB1: capacitat per a resoldre els problemes matemàtics que es plantegin en la enginyeria. Aptitud per a aplicar els coneixements sobre: àlgebra, càlcul diferencial i integral i mètodes numèrics; estadística i optimització.
CT1.2C
- Interpretar, seleccionar i valorar conceptes, teories, usos i desenvolupaments tecnològics relacionats amb la informàtica i la seva aplicació a partir dels fonaments matemàtics, estadístics i físics necessaris. CEFB3. Capacitat per a comprendre i dominar els conceptes bàsics de matemàtica discreta, lògica, algorísmica i complexitat computacional, i la seva aplicació per al tractament automàtic de la informació mitjançant sistemes computacionals i la seva aplicació per a la resolució de problemes propis de l'enginyeria.
CT4 - Demostrar coneixement i capacitat d'aplicació dels procediments algorísmics bàsics de les tecnologies informàtiques per a dissenyar solucions a problemes, analitzant la idoneïtat i la complexitat dels algorismes
CT4.1
- Identificar les solucions algorísmiques més adequades per a resoldre problemes de dificultat mitjana.
CT5 - Analitzar, dissenyar, construir i mantenir aplicacions de forma robusta, segura i eficient, triant el paradigma i els llenguatges de programació més adequats.
CT5.2
- Conèixer, dissenyar i utilitzar de forma eficient els tipus i les estructures de dades més adients per a la resolució d'un problema.
CT5.3
- Dissenyar, escriure, provar, depurar, documentar i mantenir codi en un llenguatge d'alt nivell per a resoldre problemes de programació aplicant esquemes algorísmics i utilitzant estructures de dades.
CT5.5
- Usar les eines d'un entorn de desenvolupament de software per a crear i desenvolupar aplicacions.
Competències Transversals
Actitud adequada davant el treball
G8 [Avaluable] - 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.
G8.3
- Estar motivat pel desenvolupament professional, per a afrontar nous reptes i per la millora contínua. Tenir capacitat de treball en situacions de falta d'informació.
Sostenibilitat i compromís social
G2 [Avaluable] - Conèixer i comprendre la complexitat dels fenòmens econòmics i socials típics de la societat del benestar. Ser capaç d'analitzar i valorar l'impacte social i mediambiental.
G2.3
- Tenir en compte les dimensions social, econòmica i ambiental, i el dret a la privacitat a aplicar solucions i dur a terme projectes coherents amb el desenvolupament humà i la sostenibilitat.
Competències Tècniques de cada especialitat
Especialitat computació
CCO2 - Desenvolupar de forma efectiva i eficient els algorismes i el software apropiats per a resoldre problemes complexos de computació.
CCO2.3
- Desenvolupar i avaluar sistemes interactius i de presentació d'informació complexa, i la seva aplicació a la resolució de problemes de disseny d'interacció persona computador.
CCO2.6
- Dissenyar i implementar aplicacions gràfiques, de realitat virtual, de realitat augmentada i videojocs.
Objectius
Comprendre en profunditat les diferents etapes del procés de visualització projectiu
Competències relacionades:
CT1.2A,
CT1.2C,
CCO2.6,
Ser capaç d'implementar els algorismes associats a les diferents etapes del procés de visualització
Competències relacionades:
CT1.2A,
CT1.2C,
CCO2.6,
CT4.1,
CT5.5,
Comprendre els fonaments, equacions i limitacions dels models d'illuminació local
Competències relacionades:
CCO2.6,
Assimilar la funcionalitat, model d'execució i programació de shaders en GLSL
Competències relacionades:
CT1.2C,
CCO2.6,
Comprendre i tenir destresa implementant tècniques d'interacció amb escenes 3D (selecció, manipulació i navegació).
Competències relacionades:
CCO2.3,
CCO2.6,
CT5.5,
CT5.3,
Conèixer en profunditat els conceptes, tècniques i algorismes relacionats amb la texturació de superfícies
Competències relacionades:
CT1.2A,
CT1.2C,
CCO2.6,
Comprendre i ser capaç de desenvolupar algorismes per la simulació d'ombres
Competències relacionades:
CT1.2A,
CT1.2C,
CCO2.6,
Comprendre i ser capaç de desenvolupar algorismes per la simulació de reflexions especulars
Competències relacionades:
CT1.2A,
CT1.2C,
CCO2.6,
Comprendre i ser capaç de desenvolupar algorismes per la simulació d'objectes transparents
Competències relacionades:
CT1.2A,
CT1.2C,
CCO2.6,
Assimilar els principals conceptes, equacions i algorismes d'il·luminació global
Competències relacionades:
CT1.2A,
CT1.2C,
CCO2.6,
CT4.1,
Conèixer l'algorisme de ray-tracing i les seves variants
Competències relacionades:
CT1.2A,
CT1.2C,
CCO2.6,
CT4.1,
Ser capaç d'implementar funcions eficients per la intersecció raig-geometria
Competències relacionades:
CT1.2A,
CT1.2C,
CCO2.6,
CT4.1,
CT5.2,
Identificar els avantatges i inconvenients de les diferents estructures de dades espacials
Competències relacionades:
CCO2.6,
CT5.2,
Ser capaç de desenvolupar aplicacions gràfiques interactives per la visualització realista d'escenes 3D
Competències relacionades:
CCO2.3,
CCO2.6,
CT4.1,
CT5.2,
CT5.5,
CT5.3,
Comprendre els elements que integren la visualització realista i les diferències entre els models d'il·luminació locals i globals
Competències relacionades:
CCO2.3,
CCO2.6,
Conèixer les possibilitats dels gràfics per computador a la carrera professional, desenvolupar una actitud proactiva envers la qualitat, i ser capaç d'implementar noves funcionalitats en situacions de manca d'informació.
Comprendre el paper de la informàtica gràfica en el desenvolupament de software amb una clara repercussió social, econòmica i/o ambiental, en àrees d'especial rellevància com ara la medicina, el disseny industrial i el patrimoni cultural.
Introducció als gràfics
Paradigmes de visualització. Elements que defineixen la visualització realista. Emissió, reflexió i transmissió de la llum. Comportament difós i especular. Models d'il·luminació global i local.
Àrees d'aplicació dels gràfics
Paper de la informàtica gràfica a la societat. Principals aplicacions dels gràfics.
Aplicacions amb clara repercussió social, econòmica i/o ambiental. Aplicacions en medicina, indústria i patrimoni cultural.
Procés de visualització projectiu
Transformacions geomètriques i sistemes de coordenades. Enviament de geometria. Processament de vèrtexs. Composició de primitives i retallat. Rasterització i interpolació. Processament de fragments. Operacions per fragment. Actualització del frame buffer.
Desenvolupament de shaders
Vertex shaders. Geometry Shaders. Fragment shaders. Llenguatge GLSL. API per al desenvolupament de shaders.
Interacció amb escenes 3D
Selecció d'objectes. Manipulació d'objectes. Manipulació de la càmera i navegació per l'escena.
Textures 2D
Espai de textura. Mapping invers. Generació, transformació, i interpolació de coordenades de textura. Projective texture mapping. Mostrejat de textures. Mipmapping. Samplers en GLSL.
Simulació d'ombres
Conceptes. Ombra i penombra. Propietats. Ombres per projecció sobre un o més plans. Shadow mapping.
Simulació de reflexions especulars
Conceptes. Reflexió directa (amb objectes virtuals). Simulació amb textures dinàmiques. Environment mapping
Simulació d'objectes transparents
Introducció. Dispersió. Refracció. Llei de Snell. Angle crític. Equacions de Fresnel. Alpha blending.
Il·luminació global
Magnituds bàsiques de radiometria. BSDF. Equació general del rendering. Mecanismes de transport de la llum. Classificació dels algorismes d'il·luminació global.
Ray-tracing
Ray-tracing clàssic. Oclusió ambient
Intersecció Raig-Geometria
Algorismes d'intersecció raig-geometria. Estructures de dades espacials. Subdivisió de l'espai. Subdivisió de l'escena.
Activitats
ActivitatActe avaluatiu
Introducció als gràfics
Desenvolupament dels continguts del tema corresponent. Objectius:1715 Continguts:
Examen parcial dels primers temes de l'assignatura. Objectius:1715123456 Setmana:
7
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Prova de laboratori 1
Prova sobre els conceptes, tècniques, algorismes, llenguatges i APIs relatives als guions de laboratori.
Realitzat en hores de laboratori. Objectius:1715123456 Setmana:
8
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Simulació d'ombres
Desenvolupament dels continguts del tema corresponent.
Objectius:714 Continguts:
Prova sobre els conceptes, tècniques, algorismes, llenguatges i APIs relatives al laboratori.
Realitzat en hores de laboratori. Objectius:17151234567891011121314 Setmana:
14
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Examen final
L'examen final té dos apartats: un apartat general que inclourà diversos exercicis sobre tot el temari de l'assignatura (i que s'utilitzarà per avaluar els objectius relacionats amb les comptències específiques), i un altre apartat transversal amb un exercici sobre les aplicacions de la informàtica gràfica (amb especial ènfasi en els camps d'interès social, econòmic i/o ambiental), que permetrà avaluar les competències transversals. Objectius:17151234567891011121314 Setmana:
15 (Fora d'horari lectiu)
Teoria
3h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Treball opcional sobre aplicacions dels gràfics a la societat actual
Treball escrit (aproximadament 2-5 pàgines) sobre el paper de la informàtica gràfica en el desenvolupament de software amb una clara repercussió social, econòmica i/o ambiental, en àrees d'especial rellevància com ara la medicina, el disseny industrial i el patrimoni cultural. Objectius:1716 Setmana:
15
La metodologia docent està basada principalment en classes setmanals de teoria (2h) i de laboratori (2h).
En les classes de teoria s'introduiran els conceptes, eqüacions, tècniques i algorismes dels continguts de l'assignatura, i es realitzaran exercicis que ajudaran a assimilar els conceptes i facilitar el desenvolupament dels guions de les sessions de laboratori.
Les sessions de laboratori consistiran, per part del professor, en introduir els guions del laboratori i els conceptes específics requerits per al seu desenvolupament. Els alumnes hauran de completar el disseny i la implementació de diferents aplicacions lligades amb els continguts de l'assignatura. Per a facilitar el seu desenvolupament, els professors podran subministrar esquelets de les aplicacions que estaran parcialment programades.
Les dues hores de classes de teoria es fan setmanalment. El curs 2020/2021 les classes de teoria seran online, via videos.
Les dues hores de classes de laboratori es fan també setmanalment.
L'aprenentatge autònom es considera fonamental, doncs els alumnes hauran d'aprofondir fora de classe alguns dels continguts introduits pel professor, fent servir la documentació proporcionada i cercant-ne de nova.
El curs utilitza el llenguatge de programació C++, juntament amb OpenGL i GLSL.
Per tal de desenvolupar la competència transversal G2.3 (sostenibilitat i compromís social), es proporcionà a l'estudiant documentació sobre aquest tema (en castellà, català o anglès) que l'estudiant haurà de treballar de manera autònoma.
Per tal de desenvolupar la competència transversal G8.3 (actitud adequada davant el treball), es convidarà els estudiants a assistir a xerrades de professionals convidats.
Mètode d'avaluació
Avaluació de l'assignatura:
E = nota de l'examen final (apartat general), entre 0 i 10
AA = nota d'altres activitats no presencials, entre 0 i 10
C1 = nota del primer control de laboratori, entre 0 i 10
C2 = nota del segon control de laboratori, entre 0 i 10
Nota global = max(0.5E, 0.4E + 0.1AA) + 0.25C1 + 0.25C2
La nota AA vindrà per qüestionaris de teoria i laboratori, no presencials, via Atenea.
La competència "Sostenibilitat i compromís social" s'avaluarà en base a la nota de l'apartat corresponent de l'examen final, a l'assistència a xerrades sobre gràfics, i al lliurament del treball opcional sobre aplicacions dels gràfics a la societat actual. Per tal d'assolir una qualificació A en aquesta competència, serà condició imprescindible haver lliurat el treball opcional sobre aplicacions dels gràfics.
La competència "Actitud adequada davant el treball" s'avaluarà en base a la nota de l'apartat corresponent de l'examen final, a l'assistència a xerrades sobre gràfics, i al lliurament del treball opcional sobre aplicacions dels gràfics a la societat actual. Per tal d'assolir una qualificació A en aquesta competència, serà condició imprescindible haver lliurat el treball opcional sobre aplicacions dels gràfics.
Bibliografia
Bàsica:
Informàtica gràfica: un enfocament multimèdia -
Andújar, C.; Brunet, P.; Fairen, M.; Monclús, E.; Navazo, I.; Vàzquez, P.P.; Vinacua, A,
CPET, 2008.