INFORMAZIONI SU

Interactive 3D Graphics

Programma dell'insegnamento - Corso di laurea Magistrale in Comunicazione multimediale e Tecnologie dell'Informazione

 

Docente

  • Prof. Roberto Ranon

Indirizzo e-mail

roberto.ranon@uniud.it

Indirizzo Pagina Web Personale

Sito Web http://sole.dimi.uniud.it/~roberto.ranon/

Crediti

6 CFU

Finalità

Lo scopo del corso e' introdurre lo studente ai concetti, agli algoritmi, e alle tecnologie della grafica 3D interattiva, con esempi pratici in WebGL, usando la libreria threejs.

Al termine del corso, lo studente sarà in grado di:

- comprendere il funzionamento delle applicazioni basate su grafica 3D interattiva, come ad esempio videogiochi, visualizzazione di dati, e simulazioni;

-  progettare e implementare applicazioni di questo tipo, relativamente alla parte grafica.

NOTA BENE: il corso (lezioni e materiali) viene fornito in lingua inglese.

La pagina Web del corso e’ http://www.dimi.uniud.it/ranon/int3d.html

Programma

Introduzione. Differenze tra grafica 3D e grafica 3D interattiva. Il ciclo di rendering interattivo. La pipeline per il real-time rendering.

Rappresentazione di geometrie. Mesh di poligoni. Sistemi di coordinate. Rappresentazione di triangoli e mesh di triangoli. Normali e altri dati associati ai vertici.

Trasformazioni. Trasformazioni affini: rotazione, scalatura, traslazione, e loro rappresentazione con matrici. Angoli di Eulero. Trasformazioni in coordinate omogenee.

La telecamera virtuale. Rappresentazione di una telecamera virtuale. Camera space, clip space e screen space. Proiezioni ortografiche e prospettiche. Clipping e screen mapping.

Rasterizzazione e interpolazione. Algoritmi per la rasterizzazione di punti, linee e poligoni. Interpolazione prospettica di attributi dei vertici. Aliasing e metodi di anti-aliasing screen-based.

Operazioni su frammenti e buffer. Operazioni su frammenti: depth test, blending. Algoritmi per il rendering di superfici semitrasparenti.

Programmable Shaders. Vertex e fragment shaders. Il linguaggio Glsl.

Shading. I colori e la loro rappresentazione nel rendering. Fenomeni visuali. Interazione tra luce e superfici. Equazione generale per il rendering. Bidirectional Scattering Distribution Function. Superfici lambertiane. Superfici lucide. Equazioni di shading real-time e loro implementazione tramite shaders.

Modelli di Illuminazione Blinn-Phong e Cook-Torrance. Rappresentazione di sorgenti di luce e materiali. Equazione di shading di Blinn-Phong. Termine speculare di Cook-Torrance. Implementazione tramite shaders.

Textures. Concetto di texture map. Texture space e coordinate di texture. Applicazione di texture. Metodi di anti-aliasing per texture.

Uso di Textures nello shading. Material Mapping, Normal Mapping. Displacement Mapping. Reflection e Refraction Mapping, Shadow Mapping.

Strutture dati spaziali. Bounding volumes, Bounding Volume Hierarchies, Binary Space Partitioning Trees. Algoritmi di culling: Hierarchical View Frustum Culling

Rendering Basato su Immagini. Effetti full screen. Implementazione di alcuni algoritmi di image processing tramite shaders: color filters, convoluzioni.

Introduzione alle animazioni. Animazioni tramite keyframing: interpolazione tramite splines. Cenni ad altri tipi di animazioni: skinning, morphing, sistemi di particelle. Rappresentazione di rotazioni tramite quaternioni.

Controllo della telecamera virtuale. Panoramica dei metodi interattivi, assistiti e automatici.

Attività di Laboratorio

Il corso non prevede una vera e propria attività di laboratorio, ma a lezione vengono presentati esempi pratici e proposti alcuni esercizi.

Prerequisiti

E’ necessaria la conoscenza di base della programmazione e dell’algebra lineare (vettori, matrici e operazioni con essi).

Bibliografia

- Real-Time Rendering, 2nd oppure 3rd edition, di T. Akenine-Möller, E. Haines, e N. Hoffman

- 3D Math Primer for Graphics and Game Development, di F. Dunn e I. Parberry, A K Peters / CRC Press oppure Mathematics for 3D Game Programming and Computer Graphics, 2nd edition, di Eric Lengyel, Cengage Learning 2011

- slides ed esempi forniti a lezione e su materialedidattico.uniud.it.

Modalità d'esame

L'esame si compone di una prova scritta con esercizi e domande aperte, e di due esercitazioni pratiche (assegnate nel corso delle lezioni) che consistono nella realizzazione di un programma secondo le indicazioni fornite dal docente e riportate sulla pagina Web del corso. Le esercitazioni vanno consegnate il giorno precedente allo scritto che si intende sostenere, e vengono discusse con lo studente e valutate in una discussione orale.

Orario di ricevimento

Su appuntamento.