Sei sulla pagina 1di 10

13/10/2010

13-10-10
GEOMETRIA PER LA CG

Quello che entra all’interno di una scheda grafica è una serie di


triangoli.
Gli oggetti sono rappresentati con punti, piani o piccoli poligoni.
Gli oggetti vengono modellati da un Sistema di coordinate
destrorso:

La camera(e quindi l’utente) vede la scena con un sistema


sinistrorso.

Un vettore non ha una posizione fissa nello spazio.


Scalari e vettori: somma fra vettori e prodotto
scalare-vettore.

Dato un insieme di n vettori linearmente


indipendenti di uno spazio lineare V di dimensione n (ha
una base con n elementi), ed un insieme di scalari
s1,..,sn, la combinazione lineare data da gli scalari moltiplicati per a base
vettoriale produce un vettore in V.
Prodotto scalare
Il concetto di distanza necessità del prodotto scalare.
La norma euclidea è definita a partire dl prodotto scalare. La norma
2 è definita come la radice quadrata del prodotto scalare.

Con a
componenti dei
vettori

In R3 la lunghezza di un vettore è data d

Normalizzare un vettore significa dividere le sue componenti per la


norma. Significa quindi renderlo unitario (versore).

Proiezione di un vettore su un altro:


Se la norma d u è 1 (u è un versore) a=<u,b>u

Il prodotto scalare ci servirà per capire se un oggetto è visibile oppure no.


Per ottenere un vettore perpendicolare ad A possiamo invertire le
coordinate di A ed negare la prima.
Cross Product (prodotto vettoriale).
Il vettore generato dal cross product è normale al piano sul quale stanno i
due vettori:

In CG si evita sempre di usare


operazioni floating point, si
preferisce usare ad
esempio:
La normale ad un triangolo la calcoliamo calcolando B-A e C-A e poi ne
facciamo il cross product, dopodiché normalizziamo il risultato.

Allineamento al target:
Vogliamo ruotare un vettore verso un punto P.
Per una rotazione dobbiamo identificare l’asse di rotazione e l’angolo di
rotazione.
Punti:
Lo spazio affine è l’estensione dello spazio vettoriale che ilcude il punto
somma punto + vettore: differenza punto –punto

La somma di due punti sarebbe ambigua, e quindi dipendente dal sistema


di coordinate.
Nello spazio lineare abbiamo la nozione di combinazione lineare che ci
permette di sommare fra loro entità che ci dà un elemento dello spazio.
Nello spazio affine esiste la combinazione affine:
E’ la somma dei punti moltiplicate per uno scalare, tali che gli scalari
abbiamo somma 1:
In CG si cerca sempre di slegarsi dal sistema di coordinate. Le coordinate
baricentriche sono slegate dal sistema di riferimento. In questo modo
specifico P in modo univoco e non lo lego al sistema di riferimento: lego P
ai suoi vicini.
Se gli scalari sono limitati in [0,1] allora la combinazione si dice
convessa.
Il convex Hull è il più piccolo guscio di un insieme di punti.

Un piano è definto da un punto P0 e la sua normale. Identifico tutti quei


punti Q che giaccino sul piano ortogonale alla normale. Saranno tutti quei
vettori il cui prodotto scalare con n è uguale a 0.
Sistemi di riferimento(frame):

Un vettore all’interno di un sistema di coordinate definito da v1 v2 v3 è


definito da a1 a2 a3 1, mentre un punto a1 a2 a3 0. Queste sono
coordinate omogenee.
Trasformazioni geometriche:
Vogliamo defnire trasformazioni che non deformano-- alterano la
geometria lasciando inalterata la topologia.
Una trasformazione è lineare è rappresentata da una matrice 2x2 non

singolare. La trasformazione è lineare perché:

Una trasformazione è affine quando abbiamo:

Le coordinate omogenee ci permettono di usare una matrice per un


vettore per eseguire trasformazioni affini.
Il calcolo dell’inversa è computazionalmente oneroso, tranne che per le
trasformazioni base, infatti:
Di norma sono tante le trasformazioni effettuate dall’utente, perciò è
conveniente raggruppare tutte le trasformazioni da effettuare in un’unica
matrice, e poi la applico.
Questo significa moltiplicare delle matrici.

Inverso del prodotto (M1*M2)^-1 = M2^-1*M1^-1


13/10/2010

Un dispositivo RASTER è un dispositivo di visualizzare od acquisire


una matrice di punti.
Elemento della matrice indirizzabile:
 Input: pixel
o
 Output: dot (printer)
La risoluzione è l’unità di densità per area di pixel, la risoluzione del
display è invece legata al numero di pixel per ogni dimensione.
Un modello dei colori è una rappresentazione astratta di un colore.
Il colore è espresso tramite componenti: RGB e CMY.
 In RGB per ottenere un colore sommo r + g + b
o RGBA lavora anche con la trasparenza
 In CMY abbiamo una sintesi sottrattiva

In RGB se assegno ad ogni colore un asse, ogni punto nel cubo è un


colore. Le scale di grigio si ottengono muovendosi sulla diagonale che
parte dall’origine ed arriva al vertice opposto (tutte le tre componenti
sono uguali).
Per definire i colori si utilizza spesso anche il modello HSI:
 HUE: tonalità del colore
 Saturation: quantità di luce bianca miscelata al colore
 Intensity(luminanza): luce
Hue + saturation = Cromaticità.

Grafica vettoriale:
 No sfumature
 Buona per editing e scaling
Grafica Raster:
 Si sfumature
 No scaling o editing preciso.

Uno scanner 3D è in grado di acquisire i punti di un oggetto 3d e li


elabora per ottenere una riproduzione virtuale 3D.
Scanner Passivi senza contatto:
 Shape from X: dalla silhouettes dell’oggetto viene ricostruito il
3D. Viene usato anche per le scene di animazione.
Scanner attivi trasmissivi senza contatto:
 TAC
 Non Riflessivi: radar
Il metodo più usato è quello della rilevazione laser.

Schede Grafiche

Frame Buffer: è una RAM e contiene tutto ciò che verrà visualizzato
su schermo
Color Frame Buffer: contiene il colore dei componenti per ogni pixel

IN modalità True Color ciò che è scritto nel frame buffer viene
spiutato sullo schermo.
In modalità pseudo color invece gli N piani di bit identificano un
indirizzo nella colormap che identifica un certo tipo di sfumatura per un
colore.

15-10-10

Il caricamento del frame-buffer è continuo e prende nome di video


refresh. Nei vecchi CRT si aveva il problema che i pixel non venivano
accesi tutti contemporaneamente, ma solo prima i pari e poi i dispari
(interlace). Oggi negli LCD i pixel si accendono tutti contemporanemante.
Il Frame-rate è il numero di volte che il FB viene caricato al
secondo.
I primi anni era la CPU a gestire il refresh del video (operazione
meccanica costosa).

Funzionalità della GPU

Gli input alla GPU non sono altro che stringhe di triangoli.
Il geometry stage li trasforma in 2D, la rasterization stage li butta
sul Frame buffer e li colora.
Da CPU a GPU comunichiamo solo attraverso le API (open o
directX).
La prima trasformazione riporta tutti i vertici allo stesso sistema di
riferimento. Ai vertici è assegnato un colore che viene calcolato nella
seconda fase. Dopodichè questo vertice viene proiettato sul piano di
visualizzazione.
Successivamente nella rasterizzazione, nel quale devo capire quali
pixel i triangoli andranno a occupare sullo schermo.
Queste operazioni venivano implementate in pipeline.

Nella GPU abbiamo una griglia di processori: Vertex, pixel shader e


load balancer. Alcuni stadi sono tutt’ora assemblati.
Nelle ultime schede grafiche viene introdotto il Geometry Shader:
permette di gestire primitive diverse dai triangoli.
13/10/2010

Potrebbero piacerti anche