Anno accademico 2020-2021

INTERACTIVE 3D GRAPHICS

Docenti

Roberto Ranon
Totale crediti
6
Periodo didattico
Primo Periodo
Tipologia
Affine/Integrativa
Prerequisiti. Algebra Lineare (vettori, matrici, operazioni tra di essi). Saper programmare in qualunque linguaggio imperativo / orientato agli oggetti.
Metodi didattici. L’insegnamento prevede:

– Attività di didattica frontale finalizzata all’apprendimento dei principali concetti teorici

– Analisi di esempi pratici e somministrazione di esercizi, tramite la piattaforma github

– Attività pratica mediante la somministrazione di due attività progettuali, da svolgere anche in gruppo.

Il materiale didattico, le slide e le riprese video delle lezioni del docente sono rese disponibili sulla piattaforma e-learning dell’Ateneo di Udine. Tali materiali sono riservati agli studenti iscritti al Corso. Per consentire un consolidamento dell’apprendimento, le lezioni sono registrate attraverso un doppio canale (video docente e contenuti multimediali/slide) e automaticamente pubblicate sulla piattaforma e-learning dell’Ateneo di Udine. 

Modalità di verifica. L’apprendimento viene verificato mediante la somministrazione di due prove intermedie (Assignments/Compiti), che prevedono sia domande di verifica dell’apprendimento teorico che la soluzione di esercizi, e di due progettini pratici, che si possono svolgere anche in gruppo, il secondo dei quali riproduce un caso di applicazione realistico. Per le sessioni di appello tramite esame scritto sono previste combinazioni di domande ed esercizi.  
Altre informazioni. Il materiale didattico e le slide del corso sono disponibili sulla piattaforma E-learning dell’Ateneo di Udine. Tali materiali sono riservati agli studenti iscritti al Corso.
Obiettivi formativi
Il corso introduce i principali concetti, algoritmi e tecnologie nel campo della grafica 3D interattiva, con esempi pratici in WebGL (tramite la libreria three.js) e Unity. In particolare, partendo dalla pipeline per il rendering interattivo, si esamina in dettaglio il suo funzionamento: definizione di geometrie, trasformazioni, generazione di frammenti, e loro assemblaggio in nell’immagine finale. Si passa poi alla simulazione dei materiali e degli effetti dell’illuminazione, esaminando nel dettaglio le equazioni per il Physically-Based Rendering (e la loro implementazione tramite linguaggi di shading) oggi ampiamente utilizzate nei videogiochi, nella produzione cinematografica e nella realtà virtuale. Infine, si trattano aspetti strettamente correlati al rendering, come le tecniche di animazione e le strutture dati spaziali. 

Argomenti principali:

Il ciclo per il rendering 3D interattivo. La pipeline per il rendering in tempo reale.

Rappresentazione di geometrie.

Trasformazioni affini. Proiezioni ortografiche e prospettiche. 

Rasterizzazione e interpolazione. Aliasing e metodi di anti-aliasing.

Shader programmabili. Il linguaggio glsl.

Physically-Based Shading. L’equazione generale di rendering. BRDF lambertiana e micro-facet. 

Tecniche di shading: material mapping, bump mapping, reflection mapping, refraction mapping, environment mapping, shadow mapping. 

Rendering basato su immagini. Effetti di post-processing.

Animazioni tramite keyframing, skeleton-based. Le basi del ray-tracing.

CAPACITA’ RELATIVE ALLE DISCIPLINE

Lo/la studente/studentessa dovrà:

1.1. Conoscenza e capacità di comprensione

Durante il corso, lo studente acquisisce le conoscenze necessarie per comprendere il funzionamento di un’applicazione basata su grafica 3D interattiva (videogiochi, applicazioni di realtà virtuale, visualizzazioni 3D). Inoltre, sa valutarne le prestazioni ed individuare come migliorarle. 

1.2 Capacità di applicare conoscenza e comprensione

Grazie ai numerosi esempi ed esercizi, e alle attività di progettazione e implementazione richieste per l’esame, lo studente acquisisce la capacità di progettare e implementare un’applicazione basata su grafica 3D interattiva, anche Web-based, scegliendo le tecnologie e gli algoritmi più adatti al caso specifico.

CAPACITA’ TRASVERSALI / SOFT SKILLS

2.1 Autonomia di giudizio

Lo studente acquisisce una capacità di valutazione critica sulle tecnologie, gli algoritmi e le tecniche di programmazione che possono influire positivamente o negativamente sulla corretta ed efficace implementazione di un’applicazione basata su grafica 3D.

2.2 Abilità comunicative.

Lo studente impara a descrivere in modo tecnicamente corretto, ed usando la terminologia appropriata, un’applicazione o una tecnica della grafica 3D interattiva. 

2.3 Capacità di apprendimento

Lo studente impara ad essere autonomo nell’espandere le proprie conoscenze oltre le nozioni e gli esempi appresi ed analizzati durante il corso, acquisendo le conoscenze di base per accedere alla letteratura tecnico / scientifica relativa ad argomenti avanzati.

Contenuti
Dai dispositivi mobili fino ai sistemi per la Realtà Virtuale, sempre più applicazioni si basano sulla capacità di visualizzare, in modo realistico, oggetti e scene tridimensionali con cui gli utenti possono interagire: videogiochi, esperienze immersive, visualizzazioni di prodotti e di progetti sono gli esempi più noti.

Il corso introduce i principali concetti, algoritmi e tecnologie nel campo della grafica 3D interattiva, con esempi pratici in WebGL (tramite la libreria three.js) e Unity. In particolare, partendo dalla pipeline per il rendering interattivo, si esamina in dettaglio il suo funzionamento: definizione di geometrie, trasformazioni, generazione di frammenti, e loro assemblaggio in nell’immagine finale. Si passa poi alla simulazione dei materiali e degli effetti dell’illuminazione, esaminando nel dettaglio le equazioni per il Physically-Based Rendering (e la loro implementazione tramite linguaggi di shading) oggi ampiamente utilizzate nei videogiochi, nella produzione cinematografica e nella realtà virtuale. Si trattano aspetti strettamente correlati al rendering, come le tecniche di animazione e le strutture dati spaziali. Infine, si esaminano la basi del rendering basato su ray-tracing.

Testi di riferimento
Real-Time Rendering, (2nd, 3rd or 4th edition), T. Akenine-Möller, E. Haines, and N. Hoffman. 3D Math Primer for Graphics and Game Development, F. Dunn e I. Parberry. Mathematics for 3D Game Programming and Computer Graphics, E. Lengyel.