Sei sulla pagina 1di 114

La pipeline di rendering

Il sottosistema geometrico

La Pipeline di Rendering
La pipeline di rendering si suddivide in due parti
Sottosistema geometrico: porta la geometria del
modello nelle coordinate dello schermo
Sottosistema raster: accende i pixel dello schermo
del giusto colore in funzione della geometria,
dell'illuminazione e delle texture.
Nei sistemi programmabili queste due parti sono
affidate a due shader:
Vertex shader: fa i conti delle trasformate
geometriche per ogni vertice del modello
Pixel (Fragment) shader: calcola il colore per ogni
pixel.

Sottosistema geometrico

Sottosistema raster

In una applicazione grafica sono da considerare:


uno spazio di coordinate del modello (modeling
coordinates): spazio rispetto a cui ogni singolo
oggetto modellato viene riferito.
Uno spazio di coordinate del mondo (world
coordinates system): che descrive in modo
unificato lintero universo dellapplicazione.
Uno spazio di coordinate del dispositivo (device
coordinates system): caratteristico della periferica
di output utilizzata.

Entit geometriche e trasformazioni affini


Entit geometriche
Punto - entit geometrica caratterizzata da un solo
attributo: la posizione rispetto ad un sistema di
riferimento;
Vettore - entit geometrica caratterizzata da due
attributi: lunghezza e direzione.
Lunghezze, angoli, etc. sono espresse mediante
scalari.

Entit geometriche e trasformazioni affini


Le trasformazioni geometriche sono lo strumento
che consente di manipolare punti e vettori
allinterno del mondo dellapplicazione grafica;
Le trasformazioni geometriche sono funzioni che
mappano un punto (vettore) in un altro punto
(vettore);
La trasformazione di una primitiva geometrica si
riduce alla trasformazione dei punti caratteristici
(vertici) che la identificano nel rispetto della
connettivit originale. Questo grazie al fatto che
trattiamo di trasformazioni affini

Entit geometriche e trasformazioni affini


Le trasformazioni geometriche affini sono
trasformazioni lineari
f (a P bQ) af ( P) bf (Q)
Esse preservano:
collinearit (I punti di una linea giacciono ancora
su di una linea dopo la trasformazione);
rapporto tra le distanze (Il punto medio di un
segmento rimane il punto medio di un segmento
anche dopo la trasformazione).

Le trasformazioni geometriche permettono di


traslare, ruotare, scalare o deformare oggetti
che siano stati modellati nel loro spazio di
coordinate del modello permettendo di
istanziarli con attributi (posizione,
orientamento, fattori di scala) diversi nello
spazio di coordinate del mondo (permettono il
passaggio dal sistema di coordinate locali al
sistema di coordinate del mondo)

Ogni oggetto, a partire dal proprio sistema di


riferimento (object space), viene trasformato
opportunamente in un sistema di riferimento
comune (world space) per andare a far parte
delloggetto finale.

Trasformazioni geometriche nel piano


Le trasformazioni geometriche di base sono:
Traslazione;
Scalatura;
Rotazione.

Altre trasformazioni geometriche comuni (ma


derivabili dalle precedenti) sono:
Riflessione rispetto ad un asse;
Riflessione rispetto ad un punto;
Deformazione.
Continua

Trasformazione di Traslazione

Trasformazione di scalatura

Trasformazione di rotazione

Le coordinate omogenee

Trasformazioni e coordinate
omogenee

Altre trasformazioni:riflessione

Deformazione (shear)

Composizione di Trasformazioni

Trasformazione Window to viewport

Trasformazioni 3D

Traslazione 3D

Scalatura 3D

Rotazione 3D

Rotazione intorno allasse x

Rotazione intorno allasse y

Rotazione intorno allasse z

Caso pi generale di rotazione


Nel caso pi generale, una volta fissato lasse di
rotazione e langolo di rotazione, la
trasformazione pu essere effettuata applicando i
seguenti cinque passi seguenti:
1. Loggetto traslato in maniera tale che lasse di
rotazione passi per lorigine degli assi cartesiani.
2. Loggetto ruotato in maniera tale che lasse di
rotazione coincida con uno degli assi cartesiani.

3. Ruotare loggetto nel verso e della quantit


angolare richiesta.
4. Applicare la trasformazione di rotazione
inversa a quella adottata nel passo 2 in modo tale
che lasse di rotazione assuma la direzione finale.
5. Applicare la trasformazione di traslazione
inversa a quella del passo 1 in maniera tale da
riportare lasse di rotazione nella sua posizione
iniziale.

Il processo di vista in 3 dimensioni

Le proiezioni

La proiezione di un oggetto 3D definita da


un insieme di rette di proiezione (dette
proiettori) aventi origine comune da un
centro di proiezione, che passano per tutti i
punti delloggetto e intersecano un piano di
proiezione per formare la proiezione vera e
propria.

Questo tipo di proiezioni, caratterizzate dal


fatto che:
I proiettori sono rette (potrebbero essere curve
generiche)
La proiezione su di un piano (potrebbe essere su
una superficie generica)

si chiamano proiezioni geometriche piane.

Le proiezioni parallele devono il loro nome ai


proiettori (che sono paralleli)
Mentre per una proiezione prospettica si
specifica un centro di proiezione, nel caso
delle proiezioni parallele si parla di una
direzione di proiezione.

Tra le due proiezioni la prospettica la pi


realistica, in quanto riesce a riprodurre il
modo con cui nella realt vediamo gli oggetti:
oggetti pi grandi sono pi vicini
allosservatore, oggetti pi piccoli sono pi
lontani.

Le proiezioni parallele fanno s che linee


parallele nel modello tridimensionale
rimangono tali nella proiezione. Sono
utilizzate nel disegno tecnico perch si ha la
necessit di compiere misurazioni sul risultato
della proiezione.

Proiezioni Prospettiche
La proiezione di ogni insieme di linee parallele
non parallele al piano di proiezione converge
in un punto detto vanishing point (punto di
convergenza).
Il numero di questi punti infinito, come il
numero delle possibili direzioni di fasci di rette
parallele.

Se linsieme di linee parallele a sua volta


parallelo ad uno degli assi coordinati il punto
di convergenza si chiama axis vanishing point.
Di questi punti ce ne possono essere al pi tre.
Le proiezioni si possono classificare in base al
numero di vanishing point principali (che il
numero di assi del sistema di coordinate che
intersecano il piano di proiezione).

1 Punti di fuga

2 Punti di fuga

3 punti di fuga

Proiezioni Parallele
Si classificano in base alla relazione che c tra
la direzione di proiezione e la normale al piano
di proiezione.
Se la direzione di proiezione coincide con la
normale al piano di proiezione si parla di
proiezione ortografiche. Nel caso contrario si
parla di proiezione obliqua.

Proiezioni Ortografiche
Direzione di
proiezione
allineata ad un
asse principale
Vista prospettica

Vista dallalto

Vista frontale

Vista laterale

Proiezioni ortografiche assonometriche


Sono ancora proiezioni ortografiche, ma non
essendo la direzione di proiezione allineata
con un asse principale, mostrano facce diverse
di un oggetto, assomigliando in questo alle
proiezioni prospettiche.

Proiezione Isometrica
Assonometria isometrica: la direzione di
proiezione identificata da una delle bisettrici
degli ottanti dello spazio cartesiano.

Proiezioni Oblique
Sono il tipo pi generale di proiezioni
parallele, caratterizzate dal fatto che i
proiettori possono formare un angolo
qualsiasi con il piano di proiezione.

I due pi frequenti tipi di proiezione obliqua sono


la
Cavaliera, in cui la direzione di proiezione forma
un angolo di 45 con il piano di proiezione e
quindi linee ortogonali al piano conservano la
loro lunghezza.
Cabinet: la direzione di proiezione forma un
angolo di artg(2) = 63.4 e quindi linee
perpendicolari al piano hanno lunghezza pari alla
met di quella reale.

Riassunto Proiezioni Planari


Geometriche
Tutte le proiezioni
richiedono:
piano di proiezione.
posizione del centro di
proiezione.
distanza centro di
proiezione-piano:
Finita
prospettiche.
Infinita
parallele

I parametri della vista 3D


Una vista in tre dimensioni non definita solo
dalla proiezione, ma anche dal volume di
vista, cio dalla regione dello spazio
tridimensionale che include solamente gli
oggetti visibili.
La proiezione ed il volume di vista forniscono
tutte le informazioni necessarie per clippare e
proiettare.

La macchina fotografica virtuale e la vista 3D


Le entit fondamentali che entrano in gioco
nella sintesi automatica di scene 3D sono gli
oggetti sintetici che descrivono la scena ed un
osservatore che osserva la scena e, mediante
il processo di rendering genera limmagine 2D
corrispondente.
Definire losservatore significa fissarne il punto
di vista, la direzione di osservazione e langolo
di vista, cio la porzione di scena inquadrata.

Synthetic camera
(Macchina fotografica virtuale)
La metafora pi utilizzata per la descrizione delle
relazioni osservatore-scena quella della
synthetic camera.
Lapparecchio fotografico oggetto della metafora
molto semplice e costituito da un
parallelepipedo in cui la faccia anteriore presenta
un foro di diametro infinitesimo (pinhole camera)
e sulla faccia posteriore, coincidente con la
pellicola fotografica, si formano le immagini

I raggi luminosi, attraversando lobiettivo, il foro,


impressionano la pellicola riproducendo
unimmagine ruotata di 180 delloggetto fotografato.
Si formano immagini nitide, nessun problema di
luminosit, langolo di vista pu essere modificato
variando il rapporto tra la distanza focale d (la
dimensione della scatola) e la dimensione h del
piano dellimmagine.

Dalla relazione di similitudine tra i due


triangoli che si vengono a formare, si pu
facilmente ricavare che il generico punto
P=(x,y,z) della scena avr coordinate
Pp=(xp,yp,-d) sul piano dellimmagine, dove
xp

x
,
z/d

yp

y
z/d

Per convenzione si assume lesistenza di un piano


virtuale di virtuale di identiche dimensioni del piano
di proiezione posto a distanza d dal centro di
proiezione.

Definire i parametri di una vista


sintetica

Modeling
Lutilizzo di trasformazioni di modeling la
maniera usuale per definire oggetti nella
scena in un sistema di coordinate conveniente
e poi trasformarli nel sistema di coordinate del
mondo.
Le altre tre trasformazioni sono legate al
punto di vista.

Trasformazioni di vista
Definire la trasformazione di vista vuol dire
definire il volume che contiene gli oggetti
visibili (volume di vista).
Il volume un poliedro che si pu definire
individuando un rettangolo che ne la sezione
e le quattro rette che passano attraverso i
vertici del rettangolo.

Il piano di proiezione, o piano di vista, definito


da un punto sul piano, detto View reference
point (VRP) e dalla normale al piano in questo
punto, detta View plane normal (VPN).
Il piano di vista pu essere dovunque rispetto agli
oggetti del mondo che devono essere proiettati:
davanti, dentro o dietro gli oggetti.

Finestra sul Piano di vista


Sul piano definiamo un sistema
di coordinate (u,v,n) che
chiameremo VRC (3D Viewing
Coordinate system), con origine
in VRP.

Lasse v definito per proiezione del view-up vector VUP sul piano di vista.
Lasse u, ortogonale agli altri due ed scelto in modo da formare un
sistema di coordinate right-handed.
Il contenuto della finestra sul Piano di vista, sar mappato sulla viewport e
qualunque parte del mondo 3D proiettata sul piano di vista, ma fuori dalla
finestra, non sar visualizzata.

Finestra sul piano di vista

CW centro della finestra =

Umin+[Umax-Umin]/2
Vmin+[Vmax-Vmin]/2

Il centro di proiezione (COP) e la direzione di


proiezione (DOP) sono definiti da un Projection
Reference Point (PRP).
Se la proiezione di tipo PROSPETTIVA, il
PRP coincide con il centro di Proiezione
Se la proiezione di tipo PARALLELO, la
direzione di proiezione va dal PRP al centro
della finestra.

Definizione di Viste (2)


PRP Projection Reference
Point: definisce direzione o
centro della proiezione.
Specificato nelle coordinate
VRC.
Prospettiche:
il PRP il centro di
proiezione.

Proiezioni Parallele
Parallele:
la Direction of Projection
(DOP) la retta PRP-CW.

Ortografiche:
DOP // VPN.
Oblique:
DOP non // VPN.

Volume Di Vista
Il volume di vista limita quella porzione del
mondo che deve essere tagliata e proiettata
sul piano di vista.
Per le proiezioni prospettiche il volume una
piramide semi-infinita, con vertice nel PRP e
spigoli che passano attraverso I vertici della
finestra sul piano di vista.

Volume di Vista Proiezione


prospettica

Volume di Vista Proiezione


prospettica
Posizioni dietro il COP non sono incluse
nel volume di vista e non vengono
proiettate.
I nostri occhi vedono secondo un volume
di vista tipo un cono.
Per motivi matematici, il volume di vista
rappresentato con una piramide semiinfinita.

Volume Finito di Vista


Per limitare il numero di primitive proiettate sul piano di vista, richiediamo che il
volume di vista sia finito.
Specifichiamo I limiti del volume di vista mediante un front clipping plane e un
back clipping plane.
I piani di clipping sono paralleli al piano di vista e la loro normale VPN. I piani di
clipping sono paralleli al piano di vista la loro normale VPN.
I piani sono specificati dalla front distance (F) e dalla back distance (B).

Volume Finito di Vista


Proiezioni Parallele

Definiti da : front-clipping plane e back-clipping plane


paralleli al view-plane, VPN
perpendicolare al view-plane.

Volume di Vista (Prospettiche)


Proiezioni prospettiche:
volume di vista a tronco di piramide.

Tasformazione di Viewport
Il contenuto del volume di vista deve essere
mappato sulla superficie del dispositivo di
output.
Il primo passo quello di trasformalo da
coordinate del mondo a coordinate
normalizzate di proiezione (Normalized
Projection Coordinates NPC), un sistema di
riferimento definito su un semicubo con
centro di una faccia nellorigine.

Volume di Vista (Prospettiche)


Proiezioni prospettiche:
volume di vista a tronco di piramide.

Normalizzazione
Il volume di vista viene trasformato in un
volume canonico in nuove coordinate: NPC
(Normalized Projection Coordinates). Il
risultato viene mappato nel 3D viewport, che
e contenuto nel cubo unitario (0 0 0 )
(1 1
1 ).
Disegnando le primitive ignorando la Z si
ottiene limmagine da mandare al display.

Matematica delle proiezioni


x:xp=z:d

y:yp=z:d

Punto di vista (0 0 -d), piano di proiezione z=0:


x:xp=d+z:d

y:yp=d+z:d

Mper=

Clipping
Fare il clipping in coordinate del mondo (WC)
molto dispendioso.
Soluzione: prima normalizzazione, poi clipping.
Normalizzazione: ridurre il volume di vista ad un
volume canonico.
Esistono due volumi canonici:

Implementazione
Dobbiamo moltiplicare per le matrici di
normalizzazione (Npar o Nper ), effettuare il clipping,
proiettare (usando le matrici viste in precedenza),
poi portare in coordinate di dispositivo.

Clipping
al Volume Canonico
Estensione degli algoritmi di
Cohen-Sutherland codici di 6 bits.

Sistemi di Coordinate
Abbiamo usato i seguenti sistemi di coordinate:
3D Modeling Coordinates
3D World Coordinates
3D VRC
3D NPC
2D Device Coordinates

Potrebbero piacerti anche