Compito di Computer Graphics – AA 2010/2011 - 5 Maggio (1mo appello).
Tempo max: 3 ore.
1)
(a) Scrivere una “matrice di simmetria” M0, che applica una simmetria di piano rispetto al piano Z = 0 (vedere lavagna) ai punti e vettori a cui sia moltiplicata (esprimere M0 riportando tutti i suoi elementi).
(b) Scrivere una seconda matrice di simmetria M1, che rifletta invece la scena rispetto al piano Z = +3. Esprimere M1 sia come prodotto di M0 con opportune matrici di traslazione, sia riportando tutti i suoi elementi.
(c)Sia R una matrice di rotazione e v un vettore t.c. R v = (0,0,1,0).
Scrivere una seconda matrice di simmetria M2, che rifletta rispetto ad un piano passante per l’origine e ortogonale a v (esprimere M2 come prodotto di matrici date o note).
2) Sia v1 e v2 due vettori ortogonali qualunque (diversi da zero) e p un punto, tutti espressi in spazio mondo. Scrivere uno pseudocodice che costruisca una matrice di vista M t.c. p compaia in mezzo allo schermo, e v1 e v2 compaiano come paralleli all’asse X e Y dello schermo,
rispettivamente. Dire quanto vale il determinante di M.
3) Elencare (e descrivere brevemente) alcuni modi sensati possibili (il numero maggiore possibile) in cui è possibile rappresentare una rotazione qualsiasi in R3.
4) Descrivere in pseudocodice C due funzioni per effettuare la
normalizzazione geometrica di un vettore in coordinate cartesiane, e la normalizzazione affine di un punto in coordinate affini.
5) Dimostrare che il prodotto cross fra due vettori è ortogonale a uno qualunque dei due vettori.
6) A partire dallo spazio oggetto e finendo con lo spazio schermo,
elencare i nomi delle trasformazioni geometriche e degli spazi intermedi tipicamente usati nel procedimento di trasformazione. Descrivere da quali fattori dipende ciascuna trasformazione, e alcune caratteristiche di ogni spazio (es. dove sia l’origine).
7) A) Descrivere in cosa consiste la Bidirectional Radiance Distribution Function, specificandone anche domino e codominio.
B) Spiegare perché “Bidirectional”, possibilmente in formule.
8) Definire brevemente:
a- pinhole camera b- bounding volume
c- piramide di Livelli di dettaglio
d- interpolazione lineare e- uv-mapping (di una mesh) f- GP-GPU
g- algoritmo del pittore
h- raggio primario (raytracing) i- stripificazione di una mesh j- varying, uniform e attribute (in GLSL)
k- tiling di una tessitura e tessitura tileable
9) Scrivere una funzione in pseudo-codice in GLSL che, data una direzione normale n, una direzione di vista v, e una direzione di luce l, calcoli il coefficiente di illuminazione:
a) Lambertiano (cioè puramente diffusivo) b) di Blinn-Phong
c) di Bui Tuong Phong