Donat que la part pràctica es fonamenta fortament en programació utilitzant els llenguatge C, cal garantir-ne el coneixement previ.
És també important tenir una bona base algebraica ja que molts conceptes tenen a veure amb sistemes matricials, projeccions i espais vectorials.
L'assignatura pretén que l'alumne adquireixi una formació consistent en la generació de gràfics 2D/3D, de cara a la seva aplicació posterior en el món de videojocs, animació i de les realitats virtual i augmentada.
Es cobreixen tots els punts forts i fonamentals de qualsevol aplicació gràfica, des de la base matemàtica necessària, fins al coneixement de llibreries gràfiques accessibles i utilitzades a nivell mundial.
A més, s'introdueixen els coneixements per programar aplicacions de gràfics en temps real utilitzant C++.
Tema 1. Introducció als gràfics
- Conceptes bàsics de gràfics - pantalles, buffers, colors; Rasterización: Dibuixar a pantalla en 2D; Mons virtuals: dibuixar per objecte o per píxel; Operacions vectorials i matricials
Tema 2. Conceptes bàsics per a gràfics en temps real
- Transformacions, espais de coordenades i representacions matricials; Cambres i visualització de matrius; Projeccions i Matrius de Perspectiva i Projecció Ortogràfica
Tema 3. Canalització moderna de la programació d'aplicacions en temps real
- Introducció a OpenGL, El pipeline modern de maquinari, Introducció a la programació amb Shaders
Tema 4. Il·luminació i composició d'escenes, tècniques avançades
- Conceptes bàsics de llum i il·luminació, Llei de Lambert, Ombreig de Gouraud, Il·luminació local mitjançant l'equació de Phong, Il·luminació per cara, per vèrtex, per píxel, Prova de visibilitat, eliminació de superfícies ocultes, búfer Z, retallada i composició, Textures
Tema 5. Programació en OpenGL i C ++
- Introducció a la programació en OpenGL, Buffers, Arrays i Objectes, Ús de GLM i GLUT, Utilitzar llibreries externes per a carregar continguts, Programació en llenguatge GLSL Shaders, Implementació de tècniques d'il·luminació, Implementació de tècniques avançades
Cada setmana de classes es divideixen entre dues sessions: una sessió de teoria (1 hora, classe magistral) i una altra de pràctiques (2 hores, classe de taller). En general, en les sessions pràctiques s'implementen la teoria que s'ha après aquesta setmana.
Les sessions pràctiques són vinculades amb les sessions de teoria, ja que l'assignatura és molt pràctica i els alumnes estaran programant contínuament.
Les avaluacions són: un examen final, quatre pràctiques, i un projecte final.
La contribució de cadascuna de les notes és:
Examen Final: 35%
Pràctica: 25%
Lliurament 1: 5% (Moderadament significativa)
Lliurament 2: 5% (Moderadament significativa)
Lliurament 3: 5% (Moderadament significativa)
Lliurament 4: 10% (Moderadament significativa)
Projecte final: 40% (Altament significativa)
- Akenine-Moller, Tomas, Eric Haines, and Naty Hoffman. Real-time rendering. AK Peters/CRC Press, 2019.
- Neider, Jackie, Tom Davis, and Mason Woo. OpenGL programming guide. Vol. 14. Reading, MA: Addison-Wesley.(7th ed)
- Foley, James D. Introduction to Computer Graphics. Addison-Wesley Professional; (January 1, 1993)
- https://learnopengl.com/