Tu sei qui

Grafica computazionale

Grafica Computazionale
Corso di Laurea Triennale in Informatica F004
A.A. 2015/16
SCV0363 (SCV0071)
Docente: Marco Tarini


CFU SSD LEZIONI ANNO LINGUA
6 INF/01 48 II o III Italiano


Obiettivi dell’insegnamento e risultati di apprendimento attesi
Si tratta di un corso di introduzione alla Computer Graphics (CG). Descrive metodi ed algoritmi per la visualizzazione di modelli digitali 3D con cenni alle varie applicazioni (realtà virtuale, computer games, applicazioni medicali, etc). In una prima parte, vengono presentati brevemente i possibili approcci di modellazione digitale di oggetti tridimensionali. Il focus del corso consiste nelle tecniche di rendering in tempo reale, e in particolare il processo di trasformazione spaziale e di computo dell'illuminazione. A questo fine, viene anche presentata la struttura dell'hardware specializzato (GPU) preposto all'implementazione parallelizzata di questi algoritmi, che è presente in tutti i moderni elaboratori. Infine vengono introdotte le API più diffuse in questo ambito, e segnatamente OpenGL.

Conoscenza e capacità di comprensione (knowledge and understanding)
Al termine del corso lo studente consce i principali algoritmi di rendering in tempo reale e le principali categorie di modelli digitali 3D. Ha inoltre familiarità con i necessari concetti di geometria e algebra lineare.

Capacità di applicare conoscenza e comprensione (applying knowledge and understanding)
Al termine del corso, lo studente è dotato delle nozioni tecniche basilari necessarie alla realizzazione di implementazioni efficienti e parallelizzate che sfruttano l'hardware specializzato comunemente presente delle schede video degli elaboratori.

Autonomia di giudizio
Al termine del corso lo studente è in grado di scegliere in autonomia di giudizio le soluzioni più adatte alla realizzazione di una applicazione interattiva con contenuti 3D.

Abilità comunicative
Durante il corso viene impartito il lessico tecnico proprio di questa disciplina

Prerequisiti
Il corso assume come prerequisiti i corsi di Algebra e geometria, algoritmi e strutture dati e programmazione.

Contenuti e programma del corso

  • Grafica Computazionale: intro (2h)
    • Contesti applicativi, cenni storici
  • L’hardware specializzato per la CG: (1h)
    • Graphic Processing Unit (GPU), architettura pipelined, archietture SIMD, bottelnecks
    • Primitive di rendering
  • Layers di astrazione in CG (1h)
  • Triangolarizzazione e segmentazione di superfici. (2h)
    • Algoritmi marching cubes, modellazioni procedurali, e altre tecniche
  • Trasformazioni geometriche di punti e vettori (4h)
  • Da spazio oggetto 3D a spazio schermo 2D. Sistemi di coordinate affini. Basi matematiche.
  • Coordinate Baricentriche e Interpolazione di segnali su superfici (2h)
    • Computo, uso. Scan conversion.
  • Lezione pratica: Preliminari per l’implementazione (2h)
    • librerie di GUI e di interfacciamento al SO
  • Algoritmi di Ray-Tracing (2h)
    • Intersezioni, raggi primari, strutture di indicizzazione spaziale
  • Superfici Parametriche e superfici implicite (cenni) (2h)
    • Esempi: semplici superfici developable, NURBS, splines
  • Lezione pratica: (2h)
    • Un “hello word” di Computer Graphics: disegno di un triangolo
  • Rimozione Superfici Nascoste (1h)
    • Tecniche. Depth buffer. Depth cueing
  • Tecniche di Culling (2h)
    • view frustum culling, back face culling, occlusion culling
  • Lezione pratica: (2h)
    • programmazione in GLSL di per vertex e per fragment programs
  • Mesh simpliciali: (2h)
    • Strutture half edge structures, e indexed. Processing
  • Computo dell’illuminazione (4h)
    • BRDF, modello Lambertiano, modello di Phong
  • Laboratorio: (2h)
    • controllo della matrice di vista (trackball)
  • Tecniche di shading (1h)
    • flat shading, per vertex lighting, per fragment lighting
  • Tecniche di Illuminazione Globale (2h)
    • Algoritmi di Radiosity, Ambient Occlusion
  • Texture mapping (2h)
    • Tecniche, applicazioni, meccanismi di texture fetch
  • Alpha blending e semitrasparenze (2h)
    • Sorting di primitive, funzioni di blend, alpha test
  • Lezione pratica: (2h)
    • caricamento e visualizzazione di modelli 3D
  • Metodi per la gestione di modelli 3D in memoria GPU
  • Lezione pratica: (2h)
    • formule di lighting. Esempi vari
  • Subdivision surfaces (cenni) (2h)
  • Tecniche di geometry amplification on Card: (1h)
    • Geometry shader
  • Tecniche di rendering non fotorealistico (cenni) (1h)
    • Esempi: quantized shading, countoring.

Tipologia delle attività didattiche
Lezioni frontali: 48h.

Testi e materiale didattico
Alcuni libri di testo coprono molti degli argomenti trattati da questo corso:

  • Interactive Computer Graphics (6th Edition), A Top-Down Approach with OpenGL - Angel and Shreiner - Addison-Wesley
  • Real Time Rendering (3rd Edition) - Akenine-Moller, Haines, Hoffman - A K Peters/CRC Press

Le slide delle lezioni saranno fornite sul sito di e-learning.

Modalità di verifica dell’apprendimento
L’esame consiste in una prova scritta seguita da un colloquio orale. Opzionalmente, è possibile concordare un piccolo progetto che approfondisce uno a scelta degli argomenti del corso.

La prova scritta consiste in

  • semplici esercizi per la verifica della comprensione e della conoscenza dei costrutti matematici;
  • esercizi per la verifica della capacità di programmare applicazioni grafiche;
  • domande per la verifica delle conoscenze degli aspetti più propriamente concettuali.

Il progetto è del tutto facoltativo ed è finalizzato all'approfondimento di aspetti che abbiano sollecitato un particolare interesse da parte dello studente. Consiste di solito nello sviluppo di un piccolo progetto che implementa una specifica tecnica di rendering o di interazione. La consegna di un progetto progetto non esonera dallo scritto.
Per gli studenti che hanno consegnato un progetto, l'orale consiste nella sua esposizione. Altrimenti, colloquio orale è teso all'ulteriore accertamento dell’acquisizione e della corretta comprensione dei contenuti del corso.

Orario di ricevimento
Il docente è a disposizione per il ricevimento studenti un pomeriggio a settimana (da determinare in base all’orario del corso) e su appuntamento da concordare tramite posta elettronica.


Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer