Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
a.a. 2010/2011
Prof. Massimiliano Dellisanti Fabiano Vilardi
1
Grafica 3D
Per “Grafica 3D” si intendono quelle tecniche informatiche finalizzate alla descrizione
(e rappresentazione ) di oggetti in uno spazio tridimensionale.
Lo spazio è descritto da voxel (volume pixel) ordinati Lo spazio è descritto da primitive geometriche
in una griglia tridimensionale. E’ questo il tipico tridimensionali.
caso delle immagini mediche provenienti da TAC,
RMN, ecc.
Piano di proiezione
(View Plane)
Near Plane (Front Clipping Plane)
Field Of View orizzontale (Gli oggetti più vicini alla camera
Angolo di apertura orizzontale rispetto a questo piano non
dell’obbiettivo virtuale vengono renderizzati)
Proiezione Prospettica
y xv = (d/z) x + 0 y + 0 z
P(x,y,z)
yv = 0 x + (d/z) y + 0 z
yv zv = 0 x + 0 y + ? z
(la coordinata Z risulta utile solo ai fini dello z-buffer come
vedremo in seguito e non per la determinazione del punto
sul view plane)
z
d
(Piano di proiezione)
d/z 0 0
Matrice di Proiezione Prospettica 0 d/z 0
0 0 ?
Proiezione Ortogonale
y xv = 1 x + 0 y + 0 z
P(x,y,z)
yv = 0 x + 1 y + 0 z
yv zv = 0 x + 0 y + ? z
(la coordinata Z risulta utile solo ai fini dello z-buffer come
vedremo in seguito e non per la determinazione del punto
sul view plane)
z
d
(Piano di proiezione)
1 0 0
Matrice di Proiezione Ortogonale 0 1 0
0 0 ?
y= Ax+b
A = matrice 3x3
y,x,b = vettori dello spazio 3D
Tutte le operazioni possono essere ridotte ad una opportuna composizione di 3 tipi di trasformazioni
fondamentali:
Traslazione
Rotazione
Scala
y= Ix+b
I = matrice identità
b = vettore spostamento
y
p’(x’,y’,z’)
x’ = cos(α) x – sin(α) y
α y’ = sin(α) x – cos(α) y
p(x,y,z)
z’ = z
z x
p’ = R p
R = matrice di rotazione
0 cos(α) -sin(α)
0 sin(α) cos(α)
0 1 0
sin(α) 0 cos(α)
sin(α) cos(α) 0
0 0 0
y= Sx
S = matrice di scala
0 ky 0
0 0 kz
In particolare scegliamo w = 1
0 0 0 1
Ora la matrice T può contenere sia informazioni di rotazione e scala che di traslazione
P1
T1 T2
T0
P1 = T0 P0
P2
P2 = T1 P1 = T1 ( T0 P0 )
P0
P3 = T2 P2 = T2 ( T1 P1 ) = T2 ( T1 ( T0 P0 ) )
…
T = T2 T1 T0
L’idea consiste nel considerare il segmento come un rettangolo che “copre” parzialemente
dei pixel. I pixel vengono colorati con intensità proporzionale all’area coperta. A distanza
sufficiente dallo schermo (e a risoluzioni sufficientemente elevate), l’effetto finale è motlo
più gradevole.
Per ogni superficie della scena sono descritte le proprietà ottiche alle quali obbedisce. Tali proprietà
definiscono il “materiale” della superficie e sono le seguenti:
• Ambient Color (è il colore della superficie non influenzato dalle sorgenti luminose della scena)
• Diffuse Color (è il colore della superficie dovuto alla riflessione della luce diffusa)
• Specular Color (è il colore della superficie dovuto alla riflessione della luce proveniente dalle
sorgenti luminose della scena)
• Emissive Color (è il colore della superficie dovuto alla emissione luminosa propria dell’oggetto)
• Trasparenza (definisce il livello di trasparenza della superficie)
E’ evidente che per calcolare il colore finale del triangolo è necessario tenere in considerazione la
posizione del triangolo nello spazio rispetto alle fonti luminose della scena.
Nel caso di una singola fonte luminosa è evidente che la quantità di luce riflessa da una superficie piana
dipende dal coseno dell’angolo formato tra la direzione di provenienza della luce e la normale alla
superficie.
L L
L
N N N
Il colore viene pertanto calcolato (grazie alle normali) in ciascuno dei tre vertici, quindi l’interno del
triangolo viene riempito con il colore ottenuto dalla interpolazione dei tre calcolati.
Semplicità computazionale
5 5 5 5 5 5 5 64 64 64 64 64 64 64 64 5 5 5 5 5 5 5 64
5 5 5 5 5 5 64 64 64 64 64 64 64 64 5 5 5 5 5 5 64 64
5 5 5 5 5 64 64 64 64 64 64 64 64 5 5 5 5 5 64 64 64
5
5
5
5
5
5
5
5
5
+ 64 64 64 64 64 64 64 64
64 64 64 64 64 64 64 64 = 5 5 5 5 64 64 64 64
5 5 5 64 64 64 64 64
5 5 64 64 64 64 64 64
64 64 64 64 64 64 64 64
5 64 64 64 64 64 64 64 64 5 64 64 64 64 64 64 64
64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64
Clipping (taglio di quelle porzioni di oggetti e triangoli che fuoriescono dalla zona visibile)
Le due librerie che attualmente rappresentano un vero e proprio standard per il controllo e il comando delle
schede video sono: