Salta ai contenuti. | Salta alla navigazione

Strumenti personali

GRAFICA COMPUTERIZZATA

Anno accademico e docente
Non hai trovato la Scheda dell'insegnamento riferita a un anno accademico precedente? Ecco come fare >>
English course description
Anno accademico
2021/2022
Docente
ANTONINO CASILE
Crediti formativi
6
Periodo didattico
Primo Semestre
SSD
INF/01

Obiettivi formativi

Il corso ha come obiettivo l’insegnamento dei fondamenti di Grafica Computerizzata fornendo agli studenti le basi per affrontare in futuro argomenti avanzati di Grafica Computerizzata.

Le principali conoscenze acquisite saranno:

Struttura di un sistema grafico. Il concetto di pipeline grafica e le sue principali funzionalità.
Le primitive grafiche e i loro attributi.
I sistemi di coordinate tridimensionali, le trasformazioni un sistema di coordinate omogenee.
Le trasformazioni della camera, le trasformazioni di proiezione.
I modelli di illuminazione: concetti generali, il modello di Phong e di Blinn-Phong in dettaglio.
Gli aspetti principali dell’operazione di clipping, lo studio degli algoritmi di clipping di Cohen-Sutherland, la rasterizzazione e l’algoritmo di Bresenham per le linee.
Il texture mapping: concetti di base, le tecniche di mapping e relativi filtri. Introduzione alle tecniche di multi-texturing, bump-mapping e environment-mapping.
La programmazione degli shader. Il linguaggio GLSL.
Le curve e le superfici: la loro rappresentazione, le curve e superfici interpolanti, le curve e le superfici di Hermite, di Bezier, B-spline, NURBS. Le tecniche di rendering di curve e superfici.
Tecniche di rendering avanzato: il ray-tracing e radiosity.
Cenni di Unity e di animazione di avatar a partire di dati di motion capture.

Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:

Realizzazione di applicazioni di grafica computerizzata 3D che comprendono oggetti geometrici con le loro proprietà, le sorgenti luminose, una camera, eventuali immagini come texture da applicare agli oggetti geometrici.
Sviluppare vertex shader e fragment shader in linguaggio GLSL.

Prerequisiti

I prerequisiti del corso sono Matematica Discreta e Linguaggi di Programmazione e Laboratorio.

Contenuti del corso

Il corso prevede 48 ore di didattica suddivise tra lezioni ed esercitazioni.

Introduzione al corso e panoramica della Computer Graphics. [2 ore]
Breve storia della Computer Graphics e primo programma in OpenGL. [2 ore]
Single e Double buffering, tipi di proiezione e loro uso in OpenGL. [2 ore]
Disegnare linee in OpenGL. Algoritmi DDA e di Bresenham di disegno delle linee e Cohen-Sutherland di clipping. [2 ore]
OpenGL: Rendering di primitive grafiche, Vertex Buffer Objects e Vertex Array Objects. [2 ore]
OpenGL: Depth Buffer, Culling, Rendering di testo, menu e gestione della tastiera e del mouse. [2 ore]
Trasformazioni spaziali e coordinate omogenee. [2 ore]
Trasformazione di proiezione, composizione di trasformazioni e loro implementazione in OpenGL. [2 ore]
OpenGL: Rendering di strutture gerarchiche e animazione dinamica di oggetti. Angoli di Eulero e problema del gimbal lock. [2 ore]
Modelli di colore, illuminazione e sorgenti luminose. [2 ore]
Modello di illuminazione di Phong e sua implementazione in OpenGL. [2 ore]
Modelli di Shading flat, di Gouraud e di Phong. Calcolo e trasformazione delle normali. [2 ore]
Proiezione prospettica, matrice di trasformazione della glFrustum e problema dello z-fighting. Texture mapping. [2 ore]
OpenGL: Texture mapping, magnification e minification di textures e introduzione a mipmapping. [2 ore]
OpenGL: mipmapping, combinazione di textures e di textures e illuminazione. [2 ore]
Environment mapping: sphere mapping e cube mapping e loro implementazione in OpenGL. [2 ore]
Texture mapping: bump mapping. Fixed rendering pipeline di OpenGL. Cenni di ray tracing. [2 ore]
Cenni a Radiosity. Introduzione al programmable rendering pipeline di OpenGL. [2 ore]
Brevi cenni sull’architettura hardware delle schede grafiche. OpenGL: linguaggio GLSL e esempi di due semplici vertex e fragment shaders. [2 ore]
OpenGL shaders: implementazione di texture mapping e modello di illuminazione. [2 ore]
Rappresentazione di curve e superfici. Curve e superfici interpolanti. [2 ore]
Curve e superfici interpolanti di Hermite, Bezier e B-Splines. Blending polynomials, polinomi di Bernstein e metodo di de Casteljau. [2 ore]
Uniform e non-uniform B-Splines. OpenGL: Calcolo e rendering di Curve di Bezier. [2 ore]
Cenni sulle tecniche di motion capture e animazione di avatar. Esempio dell’uso di MotionBuilder e Daz3D per l’animazione di un avatar a partire da dati di motion capture umano. [2 ore]

Metodi didattici

Il corso è organizzato nel seguente modo:

lezioni in aula sugli argomenti del corso;
esercitazioni in aula per illustrare praticamente l’applicazione degli argomenti presentati a lezione utilizzando OpenGL.

Modalità di verifica dell'apprendimento

L’obiettivo della prova d’esame consiste nel verificare il livello di raggiungimento degli obiettivi formativi indicati in precedenza.

L’esame è suddiviso in esecizi da svolgere durante il corso, un progetto da consegnare in sede di appello e di un esame orale.

Testi di riferimento

I testi di riferimento sono:
"Computer Graphics Through OpenGL: From Theory to Experiments", S. Guha, CRC Press
"Graphics Shaders: Theory and Practice", M. Bailey and S. Cunningham, CRC Press
Lucidi del docente.

Testi consigliati per gli approfondimenti:
"OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 4.5", J. Kessenich, G. Sellers, D. Shreiner, Addison-Wesley.
"Mathematics for 3D game programming and computer graphics", E. Lengyel, Cengage Learning