Informatica grafica Turno 1/2005-2006

Da WikiDsy.
Versione del 19 ott 2005 alle 16:02 di 213.140.22.64 (discussione) (Laboratorio)

Informazioni generali

Informatica Grafica è un corso fondamentale per gli studenti del secondo anno di Comunicazione digitale, ma può essere seguito, come complementare, anche dagli studenti del corso di laurea in Informatica.

=== Docente === Daniele Marini

Orario delle lezioni

  • Lunedì 14:30 - 16:30 (Aula G13, via Golgi)
  • Martedì 10:30 - 12:30 (Aula 303, Settore didattico)

Alcune lezioni di esercitazione si terranno in aule diverse da quelle previste. Consultare il sito web del corso per informazioni più precise.

Comunicazioni

Il professore ha comunicato il suo indirizzo email (l'unico modo sicuro di contattarlo, dato che è spesso in viaggio): daniele.marini@unimi.it

Sito del corso

Il sito del corso si trova alla pagina: [1].

Esiste anche una pagina che permette di accedere al servizio di videolezioni (si tratta delle lezioni degli anni passati): [2]

Il professor Marini si è raccomandato, per chi volesse fruire del servizio, di annotare da qualche parte le proprie userID e password, onde evitare di dimenticarsele e di doverle richiedere in continuazione. E' possibile che da quest'anno i codici personali corrispondano a quelli utilizzati per accedere al SIFA.

Materiale didattico e bibliografia

Sono stati segnalati in particolare i seguenti testi:

  • Comunicazione visiva digitale, D. Marini M. Bertolo A. Rizzi, Addison Wesley, 2001 (notare che il prof. è coautore di questo testo)
  • Sintesi delle immagini per il fotorealismo, M. Rossi A. Moretti, Franco Angeli, 1998
  • Fondamenti di grafica tridimensionale interattiva, R. Scateni P. Cignoni C. Montani R. Scopigno, McGraw-Hill, Milano, 2005

Una bibliografia aggiuntiva è disponibile sul sito web del corso.

Inoltre sono disponibili on-line, sempre sul sito del corso, le dispense presentate a lezione e altra documentazione attinente alla materia.

Il prof. ha consigliato di acquistare almeno uno dei libri di testo proposti.

Obiettivi e finalità del corso

  • Conoscere i concetti alla base della grafica avanzata (sintesi e analisi di immagini, fotorealismo, animazione, rendering, realtà virtuale).
  • Saper creare modelli 3D mediante il linguaggio di scripting RIB e software shader per i materiali della scena. In particolare si vedrà l'utilizzo dell'interfaccia RenderMan, ideata da Pixar Animation Studios (la casa che ha prodotto capolavori d'animazione come "Gli Incredibili", "Alla ricerca di Nemo", ecc...).

In pratica il corso si occupa della creazione a partire dal "nulla" di immagini virtuali fotorealistiche, ovvero immagini praticamente indistinguibili (o comunque il più vicine possibile) ad immagini reali, della creazione di immagini e mondi virtuali 3D, ecc...

Modalità d'esame

Per potersi presentare all'esame occorre compilare alcuni gruppi di quiz di autovalutazione (tipicamente non sono più di tre o quattro serie) che verranno proposti periodicamente. Per questo occorre registrarsi on-line.

L'esame finale consisterà in una parte orale relativa agli argomenti trattati nei quiz e da una seconda parte di progetto, che consisterà nel realizzare un'immagine fotorealistica tramite il linguaggio di scripting RIB e il RenderMan Shading Language.

N.B. Il punteggio dei quiz non è direttamente determinante ai fini della valutazione, ma in sede d'esame le domande da proporre verranno "scelte" in base alle risposte dei quiz.

Informazioni utili

  • Il prof. ha specificato che le due ore di corso giornaliere NON prevedono un intervallo a metà lezione.
  • La frequenza al corso, vista la complessità degli argomenti trattati e la presenza di concetti totalmente nuovi, è fortemente consigliata.

Laboratorio

Il corso di laboratorio sarà tenuto dal professor Davide Gadia.

E-mail: gadia@dico.unimi.it

DSY:

Il professore prenderà parte al forum di discussione di Informatica Grafica sul DSY, utilizzando il nickname Davide.Gadia.

Ricevimento:

  • Mercoledì, all'orario 10:00 - 12:00
  • Stanza S223, via Comelico 39, secondo piano

Per raggiungere comodamente la stanza, si consiglia di utilizzare l'entrata nei pressi dell'Aula Delta e prendere poi le scale fino al secondo piano. L'ufficio si trova nelle immediate vicinanze.

Materiale didattico:

Il materiale didattico è reperibile sul sito web del professor Marini.

Diario del corso

Lezione di Lunedì 03-10-05

Argomenti trattati a lezione:

  • Introduzione al corso e informazioni generali
  • Primi rudimenti di grafica: introduzione ai concetti di computer grafica, ciclo di vita delle immagini, immagini digitali, funzionamento e struttura di base di un monitor (pixel, codifica RGB, frame buffer), canale alfa per effetti di sovrapposizione di immagini

Lezione di Martedì 04-10-05

Argomenti trattati a lezione:

  • Volumi: schemi di rappresentazione
    • CSG (Geometria Solida Costruttiva)
    • BREP (Boundary rapresentation)
    • Suddivisione spaziale
    • Superfici mediali

Attenzione: il diario di questa lezione è incompleto. Chi avesse informazioni più dettagliate è pregato di aggiornare questo paragrafo.

Lezione di Lunedì 10-10-05

Avviso importante: sono state rese disponibili due aule, da 50 posti ciascuna, per lo svolgimento delle esercitazioni. Tuttavia, dato l'elevato numero dei partecipanti al corso, non sarà comunque possibile garantire un posto in aula per ciascuno studente. Per prendere parte alle esercitazioni è necessario iscriversi per tempo utilizzando questa pagina web:

[3]

Una volta raggiunta la capienza massima delle aule, le iscrizioni verranno chiuse. Gli studenti iscritti saranno poi ripartiti equamente fra le due aule, secondo un calendario che verrà diramato in seguito alle registrazioni. Le due prove si svolgeranno comunque in parallelo. Attenzione: il prof. non comunicherà in alcun modo la data di apertura delle iscrizioni on-line. Occorre pertanto prestare costante attenzione al sito.

Argomenti trattati a lezione:

Questa parte del corso è dedicata allo studio dei modelli matematici alla base della modellazione di curve e superfici. In particolare si è visto come modellare e "deformare" curve e superfici con l'ausilio di punti di controllo. Oggi si è trattato di:

  • Funzioni di Bernstein
  • Curve di Bezier: punti di controllo P0, P1, P2, P3
  • Superfici parametriche
  • Valutazione di superfici parametriche: algoritmo di De Casteljau
  • NURBS (Non Uniform Rational B Splines)
  • Curve parametriche per interpolazione
  • Superfici a maglia (mesh) e lofting
  • Il frame di Frenet: vettore tangente, normale, binormale
  • Decimazione dei triangoli: triangolazione di Delaunay, algoritmo di Sibson, metodo di Schroeder
  • Volumi: richiami sugli schemi di rappresentazione visti in precedenza (CSG, BREP, suddivisione spaziale, superfici mediali)

Per un approfondimento sulle curve è stato segnalato il seguente testo:

  • G. Farin, Curves and surfaces for computer aided geometric design

Spesso, durante il corso, verrà citata della bibliografia di approfondimento.

Il prof. ha anche menzionato il corso complementare dell'area matematica Geometria computazionale [4], per chi fosse interessato ad approfondire la teoria matematica alla base dell'Informatica grafica.

Lezione di Martedì 11-10-05

Argomenti trattati a lezione:

  • Interpolazione: punti campione, interpolazione lineare, polinomiale, a tratti, a spline cubiche
  • Funzioni approssimate: valore residuo, norma
  • Trasformazioni geometriche: spazio affine, coordinate omogenee, matrici, vettori
  • Il punto come vettore
  • Operazioni sui vettori: modulo di un vettore, somma di vettori, prodotto interno (o scalare), prodotto vettoriale
  • Orientamento nello spazio affine: mano sinistra, mano destra, world coordinate system
  • Prodotto tra matrici
  • Definizione di oggetti: sistema di riferimento locale, oggetti complessi a partire da oggetti elementari
  • La traslazione
  • Trasformazioni affini: trasformazioni lineari + traslazione
  • La rotazione nel piano: trigonometria e matrici
  • Coordinate omogenee: spazio delle classi di equivalenza, spazio omogeneo, fattore moltiplicativo
  • Trasformazioni di scala: ingrandimento, riduzione
  • Trasformazioni omografiche (o di Moebius)
  • Introduzione al 3D: coordinate omogenee 4D, matrici di rotazione (per gli assi x, y e z)
  • Trasformazioni inverse: rotazione inversa, traslazione inversa, scala inversa
  • Matrice di istanziazione (o di modellazione), ordine delle operazioni:
    • una trsformazione di scala
    • una rotazione
    • una traslazione
  • Pila (o stack) delle matrici
  • Famiglie di trasformazioni: lineari, affini, similitudini

Lezione di Lunedì 17-10-05

Avviso importante: sono state apportate alcune correzioni al calendario del corso per quanto riguarda le vacanze di novembre e le aule per le esercitazioni. Si prega di consultare la pagina web del corso e prendere visione delle modifiche.

Argomenti trattati a lezione:

Con la lezione di oggi inizia la panoramica teorica sulle librerie grafiche, in particolare le OpenGL. Lo scopo del corso è apprendere cosa sono le librerie grafiche, come si utilizzano e, sopratutto, come lavorano. Questa parte di corso prenderà quindi in esame alcuni dei concetti teorici alla base dell'elaborazione di generiche geometrie, tra cui le proiezioni, tecniche molto usate anche nell'ambiente della cartografia. Oggi si è trattato di:

  • Le librerie grafiche: cosa sono, schema operativo (applicazione utente <-> API grafiche <-> dispositivi di I/O)
  • Disegno "al tratto" e plotter
  • I poligoni: come appaiono (con/senza contorno, con/senza colorazione sfumata...)
  • Il processo base della raffigurazione di una geometria: la "window" di visualizzazione, passi della procedura (window to viewport, clipping, scan-conversione di linee)
  • Metodo incrementale: la condizione di luminosità continua, l'aliasing
  • Le proiezioni: cenni sulla classificazione delle proiezioni piane
  • Camera frame, world frame, camera model
  • Proiezioni e matrici: la matrice canonica di proiezione
  • Proiezioni tipiche: parallela, normale, obliqua
  • Metodi "lookAt" e "roll, pitch, yaw"

Lezione di Martedì 18-10-05

Argomenti trattati a lezione:

Oggi si svolta la prima lezione introduttiva del corso di laboratorio, che sarà tenuto dal professor Davide Gadia. Il corso prevede un'introduzione teorica e alcune lezioni di esercitazione al computer. Argomenti trattati oggi:

  • Introduzione al corso di laboratorio: informazioni qui
  • Introduzione al rendering e tipologie: rendering fotorealistico (approcci ray-tracing e scanline), non fotorealistico (cartoon), real time (videogame)
  • Modelling vs Rendering: descrizione delle due diverse tecniche
  • Sistemi di riferimento: Object (locale), World (globale), Camera (solidale)
  • Software di shading: cosa sono e a cosa servono, apparenza delle superfici
  • L'interfaccia RenderMan di Pixar: cos'è e a cosa serve, motori "RenderMan Compliant"
  • Implementazioni di RenderMan: Aqsis (open source), Blue Moon Rendering Tool o BMRT (freeware), Photorealistic RenderMan o PRMan (proprietaria di Pixar, la primissima implementazione dell'interfaccia) e altre
  • Processo di visualizzazione di una scena per mezzo di un motore di rendering:
    • 3D modeler -> Formato RIB -> Geometria
    • Shader -> Formato SL -> Shade
    • Geometria + Shade -> Render Engine -> Scena
  • Il linguaggio RIB (RenderMan Interface Bytestream): cos'è, a cosa serve, come ottenere un file RIB (manualmente o automaticamente per mezzo di software)
  • Introduzione al linguaggio RIB: comandi principali (Display, Format, PixelSamples)
  • La pila delle trasformazioni in RIB
  • Cenni storici sugli studi di animazione Pixar
  • Visione di un cartoon-cortometraggio prodotto da Pixar