Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di...

Post on 01-May-2015

217 views 2 download

Transcript of Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di...

Computer Graphics

Marco Tarini

Università dell’Insubria

Facoltà di Scienze MFN di Varese

Corso di Laurea in Informatica

Anno Accademico 2005/06

prove generali di compito

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 2/40

Esercizio Rasterizzazione

• Dati gli attributi definiti nei vertici (blu)quanto varra' l'attributo definito per frammento rosso ?

0.5

1

3

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 3/40

Esercizio Rasterizzazione 2:correzione prospettica

• Dati gli attributi definiti nei vertici (blu)e le coordinate affini dei vertici (verdi)quanto varra' l'attributo definito per frammento rosso ?

0.5

1

32

1

1

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 4/40

Geometria proiettiva

• Nella rappresentazione a coordinate omogenee, cosa distingue un punto da un vettore?

la quarta coordinata! Nei vettori vale 0 nei punti 1

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 5/40

Transform

• Una traslazione è definita da un vettoredi traslazione (tx,ty,tz)

• Come si scrive una matrice di traslazione?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 6/40

Transform

• Da cosa e' definita una rotazione generica?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 7/40

Shading

• In modalità flat shading,di quante normali abbiamo bisogno per ogni poligono?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 8/40

Shading

• Che differenza c'e' fra shading Gouraud e shading Phong?– quale è più caro computazionalmente?– quale dà risultati migliori?– quale è implementato in openGL?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 9/40

OpenGL

• In openGL, cosa si ottinene abilitandoGL_NORMALIZE?

• citare un caso in cui serve farlo

• citarne un altro!

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 10/40

Trasformazione

• quali trasformazioni ti vengono in menteche preservano gli angoli?

• e che NON li preservano?

• cita un motivo del perchè è imporatante

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 11/40

Trasformazione

• Cose succede se moltiplico un vettore per una matrice di traslazione?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 12/40

Texture Mapping

• Quanti accessi alla tessitura vengono interpolati per frammento, se uso il filtro LINEAR ?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 13/40

Depth Test

• Cosa serve l'algoritmo di depth-test?

• Cosa devo interpolare per utilizzarlo?

• Che strutture mi servono?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 14/40

Struttura Hardware

• Quanti tipi di memoria a bordo delle scheda grafica conosci?

• Per ogni tipo, dire se durante il rendering– vengono letti– vengono scritti– vongono sia letti che scritti– e, in quale fase del pipeline

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 15/40

Texture Mapping

• Data questa tessitura ad un canale, quanti livelli di mipmapping saranno necessari?

• Calcolarli1 20 2020

4 23 20200 20 7 20

0 0 1217

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 16/40

Trasformazione

• Cosa succede dopo la seguente catena di comandi OpenGL– glTranslatef(1,1,1);– glRotatef(30,0,1,0);– glTranslatef(-1,-1,-1);

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 17/40

Sistemi di coordinate

• La matrice di MODEL:– da che sistema di coordinate parte– a che sitema di coordinate arriva– quale e' il suo scopo

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 18/40

OpenGL

• Quali matrici di trasformazione vengono tenute nello stato di OpenGL?

– perchè si tengono distinte?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 19/40

Lighting

• Quale sara' la componente diffuse nel seguente caso:– normale (non normalizzata): ( 1, 1, 0) – posizione luce: (10,20,13)– posizione punto da illuminare: (-22,20,13)– componente ambient del materiale:

(0.5,0.5,0.5)– luce perfettamente bianca

(componente diffuse della luce: ?)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 20/40

Lighting

• Cosa è e a cosa serve il fattore di attenuazione della luce?

• Come si calcola?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 21/40

Lighting

• Elencare alcuni effetti di illuminazione globale

• Elencare alcuni effetti di illuminazione locale

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 22/40

Geometrica pura

• Quanto e' il coseno dell'angolo incluso fra questi due vettori?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 23/40

Hardware

• Quanti fonti di parallelismo conosciche vengono sfruttati dall'HWper fare rendering?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 24/40

Schermo

• Se la mia applicazione riempe uno screen-buffer a risoluzione 640x480, a 50 FpS,quale e' il suo fill-rate ?

• Cosa cambia se aggiungo che la depth complexity è 2.5 ?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 25/40

Normali e Aree

• Ho un triangolo definito dai seguenti punti(+1,+1,0)(0,+1,+1)(+2,0,+2)

• Quale e' la sua normale?• Quale e' la sua area?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 26/40

Colli di bottiglia

• Quali sono i colli di bottiglia di una applicazioneche faccia uso di rendering interattivo?

• Ti ricordi con che termine si identifica una applicazione che ha tali colli di bottiglia?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 27/40

Algoritmo del pittore

• Descrivere cosa fa• Dire che svantaggi comporta

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 28/40

Culling

• Quanti tipi di culling conosci?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 29/40

Back face culling

• Una volta proiettati, due triangoli assumono queste forme:

• ad occhio:– Hanno lo stesso facing (entrabi back-facing o front-

facing)?

• Come si fa a calcolarlo matematicamente?

V0

V1

V2

V1

V2

V0

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 30/40

Mesh

• Cosa vuol dire che una mesh e' two-manifold?

• Cosa vuol dire che una mesh e' chiusa?

• Cosa vuol dire che una mesh e' orientabile?