INFORMAZIONI SU

Grafica 3D Interattiva

Programma dell'insegnamento di Grafica 3D Interattiva - Corso di laurea magistrale in Informatica (2012/13)

Docente

Prof. Aggr. Roberto Ranon roberto.ranon@uniud.it 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 OpenGL.
Al termine del corso, lo studente sara' 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.

Programma

Introduzione. Il ciclo di rendering 3D interattivo. La pipeline per il real-time rendering.
Rappresentazione di geometrie. Mesh di poligoni e loro rappresentazione. Rappresentazione di triangoli e mesh di triangoli. Normali e altri dati associati ai vertici.
Trasformazioni. Spazi di coordinate utilizzati in Grafica 3D. Trasformazioni affini: rotazione, scalatura, traslazione. 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.
Textures. Concetto di texture map. Texture space e coordinate di texture. Applicazione di texture. Metodi di anti-aliasing per texture.
Operazioni su frammenti e buffer. Operazioni su frammenti: alfa test, blending. Operazioni con buffer: stencil test, depth test.
Programmable Shaders. Vertex e fragment shaders. Il linguaggio Glsl.
Shading. I colori e la loro rappresentazione nel rendering. Fenomi visuali e loro importanza nello shading. Equazioni di shading e loro implementazione tramite shaders. Frequenza di valutazione: flat shading, Gouraud shading e Phong shading) Modelli di Illuminazione. Blinn-Phong e Cook-Torrance. rappresentazione di sorgenti di luce e materiali. Equazione di shading di Phong. Termine speculare Blinn/Phong. Termine speculare Cook-Torrance. Implementazione tramite shaders.
Uso di Textures nello shading. Material Mapping, Normal Mapping. Implementazione tramite shaders.
Cenni a tecniche di illuminazione globale. Environment Mapping, Shadow Mapping. Implementazione tramite shaders.
Strutture dati spaziali. Bounding volumes, Bounding Volume Hierarchies, Binary Space Partitioning Trees. Algoritmi di culling: Hierarchical View Frustum Culling Rendering Basato su Immagini. Cenni a sprites, impostors, billboards. 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.
Controllo della telecamera virtuale. Panoramica dei metodi interattivi, assistiti e automatici. Metodi reattivi e dichiarativi. Un esempio di algoritmo dichiarativo per la determinazione della telecamera ottimale a partire da un insieme di requisiti.
OpenGL e GLSL Concetti di base. Struttura di base di un programma con OpenGL e GLUT. Tipi di dati OpenGL e modello degli oggetti. Modello di rendering OpenGL. Gestione di eventi con GLUT. Primitive OpenGL per il disegno di geometrie tramite vertex buffers. Trasformazioni modelview in OpenGL e stack di trasformazioni. Proiezioni e viewport mapping in OpenGL. Applicazione di textures in OpenGL. Il linguaggio GLSL. Uso di shaders GLSL in OpenGL.

Bibliografia

-Real-Time Rendering, 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

-Mathematics for 3D Game Programming and Computer Graphics, 2nd edition, di Eric Lengyel

- slides ed esempi forniti a lezione

Modalità d'esame

- esercizi pratici, da svolgere anche in gruppo, preferibilmente durante il corso (ma non e' indispensabile)
- prova scritta, e prova orale con discussione delle esercitazioni.