Gràfics

Crèdits
6
Tipus
Obligatòria d'especialitat (Computació)
Requisits
  • Prerequisit: IDI
  • Corequisit: PROP
Departament
CS
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 Ríos Jerez ( )
  • Alvaro Vinacua Pla ( )
  • Antonio Chica Calaf ( )
  • Imanol Muñoz Pandiella ( )
  • Jose Luis Pontón Martinez ( )
  • Marta Fairen Gonzalez ( )
  • Oscar Argudo Medrano ( )

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

  1. Comprendre en profunditat les diferents etapes del procés de visualització projectiu
    Competències relacionades: CT1.2A, CT1.2C, CCO2.6,
  2. 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,
  3. Comprendre els fonaments, equacions i limitacions dels models d'il•luminació local
    Competències relacionades: CCO2.6,
  4. Assimilar la funcionalitat, model d'execució i programació de shaders en GLSL
    Competències relacionades: CT1.2C, CCO2.6,
  5. 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,
  6. 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,
  7. Comprendre i ser capaç de desenvolupar algorismes per la simulació d'ombres
    Competències relacionades: CT1.2A, CT1.2C, CCO2.6,
  8. Comprendre i ser capaç de desenvolupar algorismes per la simulació de reflexions especulars
    Competències relacionades: CT1.2A, CT1.2C, CCO2.6,
  9. Comprendre i ser capaç de desenvolupar algorismes per la simulació d'objectes transparents
    Competències relacionades: CT1.2A, CT1.2C, CCO2.6,
  10. Assimilar els principals conceptes, equacions i algorismes d'il·luminació global
    Competències relacionades: CT1.2A, CT1.2C, CCO2.6, CT4.1,
  11. Conèixer l'algorisme de ray-tracing i les seves variants
    Competències relacionades: CT1.2A, CT1.2C, CCO2.6, CT4.1,
  12. Ser capaç d'implementar funcions eficients per la intersecció raig-geometria
    Competències relacionades: CT1.2A, CT1.2C, CCO2.6, CT4.1, CT5.2,
  13. Identificar els avantatges i inconvenients de les diferents estructures de dades espacials
    Competències relacionades: CCO2.6, CT5.2,
  14. 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,
  15. 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,
  16. 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,
  17. 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

  1. 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.
  2. À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.
  3. 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.
  4. Desenvolupament de shaders
    Vertex shaders. Geometry Shaders. Fragment shaders. Llenguatge GLSL. API per al desenvolupament de shaders.
  5. Interacció amb escenes 3D
    Selecció d'objectes. Manipulació d'objectes. Manipulació de la càmera i navegació per l'escena.
  6. 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.
  7. Simulació d'ombres
    Conceptes. Ombra i penombra. Propietats. Ombres per projecció sobre un o més plans. Shadow mapping.
  8. Simulació de reflexions especulars
    Conceptes. Reflexió directa (amb objectes virtuals). Simulació amb textures dinàmiques. Environment mapping
  9. Simulació d'objectes transparents
    Introducció. Dispersió. Refracció. Llei de Snell. Angle crític. Equacions de Fresnel. Alpha blending.
  10. 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.
  11. Ray-tracing
    Ray-tracing clàssic. Oclusió ambient
  12. Intersecció Raig-Geometria
    Algorismes d'intersecció raig-geometria. Estructures de dades espacials. Subdivisió de l'espai. Subdivisió de l'escena.

Activitats

Activitat Acte avaluatiu


Introducció als gràfics

Desenvolupament dels continguts del tema corresponent.
Objectius: 17 15
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Aplicacions dels gràfics

Desenvolupament dels continguts del tema corresponent.
Objectius: 17 16
Continguts:
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Procés de visualització projectiu

Desenvolupament dels continguts del tema corresponent.
Objectius: 1 2 14
Continguts:
Teoria
2h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Desenvolupament de shaders

Desenvolupament dels continguts del tema corresponent.
Objectius: 1 4 14
Continguts:
Teoria
2h
Problemes
0h
Laboratori
8h
Aprenentatge dirigit
0h
Aprenentatge autònom
20h

Interacció amb escenes 3D

Desenvolupament dels continguts del tema corresponent.
Objectius: 5 14
Continguts:
Teoria
2h
Problemes
0h
Laboratori
6h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h

Textures 2D

Desenvolupament dels continguts del tema corresponent.
Objectius: 6
Continguts:
Teoria
4h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h

Examen parcial

Examen parcial dels primers temes de l'assignatura.
Objectius: 17 15 1 2 3 4 5 6
Setmana: 7
Tipus: examen de teoria
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: 17 15 1 2 3 4 5 6
Setmana: 8
Tipus: examen de laboratori
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h

Simulació d'ombres

Desenvolupament dels continguts del tema corresponent.
Objectius: 7 14
Continguts:
Teoria
4h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h

Simulació de reflexions especulars

Desenvolupament dels continguts del tema corresponent.
Objectius: 8 14
Continguts:
Teoria
2h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h

Simulació d'objectes transparents

Desenvolupament dels continguts del tema corresponent.
Objectius: 9 14
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

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

Ray-tracing

Desenvolupament dels continguts del tema corresponent.
Objectius: 10 11 14
Continguts:
Teoria
2h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h

Intersecció raig-geometria

Desenvolupament dels continguts del tema corresponent.
Objectius: 13 14
Continguts:
Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h

Prova de laboratori 2

Prova sobre els conceptes, tècniques, algorismes, llenguatges i APIs relatives al laboratori. Realitzat en hores de laboratori.
Objectius: 17 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Setmana: 14
Tipus: examen de laboratori
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: 17 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Setmana: 15 (Fora d'horari lectiu)
Tipus: examen de teoria
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: 17 16
Setmana: 15
Tipus: entrega
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h


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àsica:

Complementaria:

Web links