INFORMAZIONI SU

Grafica 3D interattiva

Programma dell'insegnamento di Grafica 3D interattiva - Corso di laurea magistrale in Comunicazione Multimediale e tecnologie dell'Informazione (2012/13)

Docente

Prof. aggr. Roberto Ranon roberto.ranon@uniud.it

Crediti

6 CFU

Finalità

Lo scopo del corso è 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 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.

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 è indispensabile)
  • Prova scritta, e prova orale con discussione delle esercitazioni.