Grau en Engineering in Technology Management

Forma't en un Grau Universitari únic a Espanya i amb un 100% d'ocupació

Programació de gràfics 3D

Descripció
En l´assignatura de Gràfics 1 es pretén que l´alumne sigui capaç de programar un sistema de visualització de gràfics 3D en temps real i en comprengui els càlculs i conceptes teòrics en que es basen els seus algoritmes.
Tipus assignatura
Optativa
Semestre
Primer
Crèdits
5.00
Coneixements previs

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.

Objectius

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++.

Continguts

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

Metodologia

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.

Avaluació

Les avaluacions són: un examen final, quatre pràctiques, i un projecte final.

Criteris avaluació

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)

Bibliografia bàsica

- 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/

Material complementari