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 ( andujar@cs.upc.edu )
Altres
- Alejandro Beacco Porres ( alejandro.beacco@upc.edu )
- Alejandro Ríos Jerez ( arios@cs.upc.edu )
- Alvaro Vinacua Pla ( alvar@cs.upc.edu )
- Antonio Chica Calaf ( achica@cs.upc.edu )
- Eduard Pujol Puig ( eduard.pujol.puig@upc.edu )
- Imanol Muñoz Pandiella ( imanolm@cs.upc.edu )
- Marta Fairen Gonzalez ( mfairen@cs.upc.edu )
- Oscar Argudo Medrano ( oargudo@cs.upc.edu )
- Víctor Franco Sánchez ( victor.franco.sanchez@upc.edu )
Hores setmanals
Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
6
Competències
Competències tècniques comunes
- 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.1 - Identificar les solucions algorísmiques més adequades per a resoldre problemes de dificultat mitjana.
- 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.
Actitud adequada davant el treball
- 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.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.
Especialitat 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ó.
Competències relacionades: G8.3, G2.3, -
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.
Competències relacionades: G2.3,
Continguts
-
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
Activitat Acte avaluatiu
Teoria
4h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h
Il·luminació global
Desenvolupament dels continguts del tema corresponent.Objectius: 10
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h
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: 17 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Setmana: 15 (Fora d'horari lectiu)
Teoria
0h
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: 17 16
Setmana: 15
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Xerrades opcionals sobre gràfics
Objectius: 17 16
Continguts:
- 1 . Introducció als gràfics
- 3 . Procés de visualització projectiu
- 4 . Desenvolupament de shaders
- 5 . Interacció amb escenes 3D
- 6 . Textures 2D
- 7 . Simulació d'ombres
- 8 . Simulació de reflexions especulars
- 9 . Simulació d'objectes transparents
- 10 . Il·luminació global
- 11 . Ray-tracing
- 12 . Intersecció Raig-Geometria
- 2 . Àrees d'aplicació dels gràfics
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h
Metodologia docent
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àsic
-
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.
-
Interactive computer graphics : a top-down approach with WebGL
- Angel, E.; Shreiner, D,
Pearson,
2015.
ISBN: 9781292019345
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004030149706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Real-time rendering
- Akenine-Moller, T. [et al.],
CRC Press,
2018.
ISBN: 9781138627000
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004153129706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
OpenGL shading language
- Rost, R.J.; Licea-Kane, B,
Addison-Wesley,
2010.
ISBN: 9780321637635
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003760359706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
3D computer graphics
- Watt, A.H,
Addison-Wesley,
2000.
ISBN: 0201398559
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002227789706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementari
-
Physically based rendering: from theory to implementation
- Pharr, M.; Jakob, W.; Humphreys, G,
Morgan Kaufmann Publisher,
2016.
ISBN: 9780128007099
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001589029706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
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 -
Geometric data structures for computer graphics
- Langetepe, E.; Zachmann, G,
AK Peters,
2006.
ISBN: 9781568812359
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003279129706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Web oficial de Qt http://qt.nokia.com/
- Especificació de les diferentes versions d'OpenGL. http://www.opengl.org/documentation/specs/