1) Scrivere, in pseudocodice GLSL (cioè potendo utilizzare le operazioni base su punti e vettori) l’implementazione di funzioni per determinare:
a. se due vettori in R3 dati v0 e v1 sono ortogonali fra loro oppure no b. un punto p2, sul segmento che congiunge p0 e p1, che dista
da p0 il triplo di quanto dista da p1 ;
c. il coseno e il seno dell’angolo compreso fra due vettori v1 e v2 ;
d. l’area e il baricentro del triangolo T avente vertici nei punti p0, p1 e p2 e. la coordianta Z in Spazio Vista di un punto p dato, sapendo che
l’osservatore e’ situato nel punto eye e orientato in direzione v (con p, eye e v espressi in Spazio Mondo);
f. la direzione del raggio di luce riflesso rf dal triangolo T, data quella del raggio di luce incidente ri e i tre punti p0, p1 e p2 vertici di T ;
g. una base ortonormale qualsiasi che abbia l’origine nel punto p0 e l’asse delle X passante per il punto p1.
2) Il grafo qui accanto rappresenta un tappo e una bottiglia, nei rispettivi sistemi di riferimento (St e Sb), due vettori v1 e v2 e un angolo a. Nel sistema mondo (Sm)
bottiglia e tappo sono rimpiccioliti uniformemente del 20%.
a. Descrivere la matrice di modellazione finale per l’oggetto “tappo”.
b. Specificare lo spazio di partenza e quello di destinazione (fra quelli indicati) della trasformazione corrispondente.
c. La telecamera ora viene posta sul tappo,
orienata come questo. Esprimere la matrice di Vista.
d. Dire quali dati ti sarebbero necessari per esprimere la matrice di proiezione, e quale siano il suoi spazi di partenza e di destinazione.
3) (a) Descrivi la formula dell’illuminazione diffusiva, specificando il
significato dei termini usati. (b) Elenca alcuni esempi di materiali reali dai quali ti aspetteresti una risposta alla luce di questo tipo. (c) Riporta
un’equazione di lighting capace di simulare riflessi speculari, specificando il significato dei termini usati.
4) Sia M una mesh poligonale che rappresenta un tetraedro (piramide a base triangolare). (a) Esprimere la connettività di M come mesh indicizzata.
(b) dire quanta memoria occupa la geometria di M, se si usano floats di 4 bytes per ciascuna coordianta. (c) Si rimouva una faccia a piacere di M: esprimere la connettività di M come struttura di half-edges. (d) Esprimere uno pseudocodice per il rendering in wireframe di M con OpenGL.
5) (a) Descrivere la superficie di una sfera S di raggio 5 centrata nel punto (1,0,0) come superficie implicita. (b) Descrivere come sup implicita il
risultato dell’intersezione S con il semispazio x>0. (c) Descrivere almeno un modo (meglio, un paio) col quale puoi fare rendering dell’oggetto risultante.
6) Sia data una texture T di 16x16 ad un canale solo, con t(i,j) il valore dei texels. (a) Specificare i valori restituiti da un texture fetch effettuato alle coordinate (u,v) = (0.2, 0.1), usando i vari filtri che conosci, senza MIP- mapping. (b) quanti e quali livelli di MIP-mapping saranno necessari?
7) Definire i seguenti termini:
a. depth test
b. applicazione fill-limited c. alpha blending
d. algoritmo marching-cubes e. algoritmi di radiosity f. occlusion culling g. bump-map
h. varying, uniform e attribute (in GLSL)
i. view frustum
j. semplificazione di una mesh k. uv-mapping di una mesh
l. interpolazione lineare m. estrapolazione lineare