14.08.2013 Views

Grafica 3D Interattiva

Grafica 3D Interattiva

Grafica 3D Interattiva

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Grafica</strong> <strong>3D</strong> <strong>Interattiva</strong><br />

A.A. 2010/2011<br />

Esempi di esercizi per l’esame<br />

1. Che cosa viene disegnato nella finestra OpenGL dopo la chiamata alla funzione draw()<br />

seguente, tenuto conto che la funzione drawSquare() disegna un quadrilatero con vertici<br />

(0,0,0), (1,0,0), (1,1,0), (0,1,0)?<br />

[disegnate il risultato a fianco indicando le coordinate delle geometrie in camera space]<br />

def draw():<br />

glColor(1, 0, 0)<br />

glPushMatrix()<br />

glTranslate(0, -4, 0)<br />

glScale(1, 2, 1)<br />

drawSquare()<br />

glColor(0, 1, 0)<br />

glTranslate(2, 1, 0)<br />

glPushMatrix()<br />

glRotate(180, 0,0,-1)<br />

glPushMatrix()<br />

glTranslate(-2, -1, 0)<br />

glPopMatrix()<br />

glPushMatrix()<br />

glRotate(90, 0,0,-1)<br />

glScale(2, 2, 1)<br />

drawSquare()<br />

glColor(0, 0, 1)<br />

glPopMatrix()<br />

glPushMatrix()<br />

glRotate(180, 0,0,1)<br />

glTranslate(-2, 2, 0)<br />

drawSquare()<br />

2. Descrivere tramite pseudo-codice il funzionamento dellʼalgoritmo per lʼeliminazione delle<br />

superfici nascoste tramite depth test<br />

3. Descrivere il problema denominato “texture magnification”: quando si puoʼ verificare,<br />

possibili effetti, e un possibile rimedio.<br />

4. Il triangolo ABC ha i vertici in (1,1,0), (2,3,0) e (3,1,0). Trovare la matrice che scala il<br />

triangolo di un fattore 2 nella dimensione X lasciando il vertice (2,3,0) nella sua<br />

posizione. Applicare la matrice trovata per determinare i nuovi vertici del triangolo ABC.


5. Dato il punto p=(5, 4, -5) in camera space e assumendo un piano di proiezione z=-1:<br />

a. quali sono le coordinate 2D del punto p proiettato sul piano di proiezione usando<br />

proiezione ortografica?<br />

b. quali sono le coordinate 2D del punto p proiettato sul piano di proiezione usando<br />

proiezione prospettica?<br />

6. Spiegare il termine e lʼutilizzo dello spazio tangente<br />

7. Descrivere il termine speculare del modello di illuminazione di Phong.<br />

8. Completare il programma GLSL seguente per creare uno shader dove uno tra le<br />

componenti diffuse e specular eʼ implementata nel vertex shader, e lʼaltra nel fragment<br />

shader. Assumete che ci sia una sola luce di tipo direzionale (con direzione<br />

LightDirection) e che la variabile LightColor rappresenti lʼintensitaʼ della luce per le<br />

componenti diffuse e specular. Trascurate la componente ambientale.<br />

Vertex shader:<br />

// useful built-in variables<br />

// vec4 gl_Vertex: vertex position in model space<br />

// vec3 gl_Normal: vertex normal in model space<br />

// mat4 gl_ModelViewMatrix: modelview matrix<br />

// mat3 gl_NormalMatrix; traspose of the inverse of the upper<br />

// leftmost 3x3 of gl_ModelViewMatrix<br />

// mat4 gl_ProjectionMatrix: projection matrix<br />

uniform vec3 LightDirection;<br />

uniform vec3 LightColor;<br />

uniform vec3 DiffuseMaterial;<br />

uniform vec3 SpecularMaterial;<br />

uniform float Shininess;<br />

// Your varying declarations here<br />

void main() {<br />

// Your vertex shader code here<br />

gl_Position = ftransform();<br />

}<br />

Fragment shader:<br />

// The same declarations as in the vertex shader


void main() {<br />

}<br />

// Your fragment shader code here<br />

gl_FragColor = vec4(color, 1.0);<br />

9. Descrivere, indicando le formule, le differenze tra i termini speculari di Phong e di Blinn<br />

10. Che cosʼeʼ una cube map e per cosa puoʼ essere utilizzata? Come avviene lʼaccesso<br />

ai texel di una cube map?<br />

11. La tecnica denominata Bump Mapping richiede due vettori, tangente e bitangente, per<br />

ogni vertice. Spiegare a cosa servono.<br />

12. Descrivere tramite pseudocodice il funzionamento dellʼalgoritmo Hierarchical View<br />

Frustum Culling

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!