computer graphics
DESCRIPTION
Lezione 3: HW based rendering. Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 200 6 /0 7. Computer Graphics. Marco Tarini. Riassunto puntate precedenti 1/3. Computer Graphics ( CG )... in particolare: - PowerPoint PPT PresentationTRANSCRIPT
Computer Graphics
Marco Tarini
Università dell’Insubria
Facoltà di Scienze MFN di Varese
Corso di Laurea in Informatica
Anno Accademico 2006/07
Lezione 3: HW based 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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 2
Riassunto puntate precedenti 1/3
• Computer Graphics ( CG )...• in particolare:
– hardware-supported real-time rendering• detto anche "HW accelerated rendering"
• hardware dedicato al rendeingGPU – Graphic Processing unit
vsCPU – Central Processing Unit
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 3
• Raytracing• Rasterization based• Image based (per es. light filed)• Radiosity• Point-splatting• ...
Riassunto puntate precedenti 2/3RENDERING PARADIGM:
(Triangle-) Rasterization Based
detto anche:
Transform and Lighting (T&L)
I. Che si usino solo le seguenti primitive di rendering :triangoli, segmenti, punti
(o al limite quads, con diagonal split)
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 4
Riassunto puntate precedenti 3/3
rendering
Tri
an
goli
QuadsCampi d'altezza
Forme geo. di base
Superfici parametriche
"al volo"
n-agoni
Dati VolumetriciSuperfici implicite
Nuvole di punti
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 5
screenbuffer
Punti 3D
Transform & Lighting
Segmenti 3D
Triangoli 3D
scheda grafica
Transform &
Lighting video
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 6
Transform & Lighting...
• Transform :– trasformazioni di sistemi di coordinate– scopo: portare la scena davanti all'obiettivo della
nostra macchina fotografica (virtaule)– piazzare i triangoli visibili sullo schermo
• Lighting :– illuminazione
• (in senso generale)
– scopo: calcolare il colore finale di ogni parte della scena
• risultante da– le sue caratteristiche ottiche– l'ambiente di illuminazione
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 7
... Rasterization-Based Rendering
• più specificatamente...
vertici3D
fragmentprocess
pixelsfinale
"frammenti"(fragments)
transform
x z
v0v1
v2
rasterizer
y
triangolo 2Da schermo(2D screen
triangle)
v0v1
v2
il lighting invece avviene insieme alla fase
"transform"e/o alla fase "fragment
process"
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 8
fram
men
ti(c
andid
ati
pix
els
)
Rasterization-Based HW-Supported Rendering:triangoli
Vert
ici
(punti
in R
3)
pixelfinali
(nello screen-buffer)
Vert
ici
pro
iett
ati
(punti
in R
2)
Z com
puta
zioni
per
vert
ice
rasterize
r
com
puta
zioni
per
fram
mento
x
y
z
v0v1
v2
set-up
v0v1
v2
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 9
fram
men
ti(c
andid
ati
pix
els
)
Rasterization-Based HW-Supported Rendering
Vert
ici
(punti
in R
3)
pixelfinali
(nello screen-buffer)
Vert
ici
pro
iett
ati
(punti
in R
2)
Z com
puta
zioni
per
vert
ice
rasterizer
com
puta
zioni
per
fram
mento
set-up
componenti fisiche dell'HW!Pipeline Parallelismo Efficienza
inoltre, molte componenti sono replicate
(negli stages collo di bottiglia)
Fragment "shader"Vertex "shader"
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 10
fram
men
ti(c
andid
ati
pix
els
)
Cenni storici: nei PC...V
ert
ici
(punti
in R
3)
pixelfinali
(nello screen-buffer)
Vert
ici
pro
iett
ati
(punti
in R
2)
Z com
puta
zioni
per
vert
ice
rasterize
r
com
puta
zioni
per
fram
mento
set-up
1996
general purposeHW (con CPU)
dedicated HW (con GPU)
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 11
fram
men
ti(c
andid
ati
pix
els
)
Cenni storici: nei PC...V
ert
ici
(punti
in R
3)
pixelfinali
(nello screen-buffer)
Vert
ici
pro
iett
ati
(punti
in R
2)
Z com
puta
zioni
per
vert
ice
rasterize
r
com
puta
zioni
per
fram
mento
set-up
1997
general purposeHW (con CPU)
dedicated HW (con GPU)
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 12
fram
men
ti(c
andid
ati
pix
els
)
Cenni storici: nei PC...V
ert
ici
(punti
in R
3)
pixelfinali
(nello screen-buffer)
Vert
ici
pro
iett
ati
(punti
in R
2)
Z com
puta
zioni
per
vert
ice
rasterize
r
com
puta
zioni
per
fram
mento
set-up
1999
general purposeHW (con CPU)
dedicated HW (con GPU)
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 13
fram
men
ti(c
andid
ati
pix
els
)
Rasterization-Based HW-Supported Rendering:triangoli
3 V
ert
ici
(punti
in R
3)
pixelfinali
(nello screen-buffer)3
Vert
ici
pro
iett
ati
(punti
in R
2)
Z com
puta
zioni
per
vert
ice
rasterizer
triangoli
com
puta
zioni
per
fram
mento
x
y
z
v0v1
v2
set-up
v0v1
v2
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 14
fram
men
ti(c
andid
ati
pix
els
)
Rasterization-Based HW-Supported Rendering:segmenti
2 V
ert
ici
(punti
in R
3)
pixelfinali
(nello screen-buffer)2
Vert
ici
pro
iett
ati
(punti
in R
2)
Z com
puta
zioni
per
vert
ice
rasterizer
triangoli
com
puta
zioni
per
fram
mento
x
y
z
v0
v1
set-up
v0
v1
rasterizer
segmenti
set-up
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 15
fram
men
ti(c
andid
ati
pix
els
)
Rasterization-Based HW-Supported Rendering: punti
Vert
ice
(punto
in R
3)
pixelfinali
(nello screen-buffer)V
ert
ice
pro
iett
ato
(punto
in R
2)
Z com
puta
zioni
per
vert
ice
rasterizer
triangoli
com
puta
zioni
per
fram
mento
x
y
z
v1
set-up
v1
rasterizer
segmenti
set-up
rasterizer
punti
set-up
esempio di point "splat"(point splatting)
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 16
fram
men
ti(c
andid
ati
pix
els
)
Rasterization-Based HW-Supported Rendering:
Vert
ici
(punti
in R
3)
pixelfinali
(nello screen-buffer)
Vert
ici
pro
iett
ati
(punti
in R
2)
Z
rasterizer
triangoli
com
puta
zioni
per
fram
mento
x
y
z
v0v1
v2
set-up
v0v1
v2
rasterizer
segmenti
set-up
rasterizer
punti
set-up
com
puta
zioni
per
vert
ice
com
pu
tazi
on
ip
er
vert
ice
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 17
Transform
x
y
z
v0v1
v2
v0v1
v2
world Coordinates screen Coordinates
• Per ogni vertice:
?
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 18
Transform
(a)(b) (a) (b)
• Intanto, dipende dalla pos della camera (macchina fotografica)
– detta anche: pos del viewer – o eye position– o POV (Point of View)
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 19
Transform
x
y
z
v0v1
v2
world Coordinates
• Strategia:1) "transformazione di vista":
portare la scena davanti alla camera• e non viceversa ;-)
1y
x
-zv0
v1
v2
view Coordinates(a.k.a. eye Coordinates)
Bene...ora la geometria e' espressa in un sistema di coordianate in cui:• lo zero è il centro di proiezione (l'obiettivo della camera)• la camera guarda verso -z• y è verso l'alto, e x e verso destra (rispetto al fotografo)
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 20
1
-1 1
-1
Transform
x
y
z
v0v1
v2
world Coordinates
1
• Strategia:1) "transformazione di vista":
portare la scena davanti alla camera2) "transformazione di proiezione":
proietta la geometria sul piano di proiezione
2y
-zv0
v1
v2
view Coordinates(a.k.a. eye Coordinates)
yx
-zv0
v1
v2
v0
v2
v1
normalized projectedcoordinates
x
- necessario sapere i parametri interni della "camera virtuale" - in particolare, la lunghezza focale- questo causa anche la distorsione prospettica
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 21
Transform
x
y
z
v0v1
v2
world Coordinates
1
• Strategia:1) "transformazione di vista":
portare la scena davanti alla camera2) "transformazione di proiezione":
proietta la geometria sul piano di proiezione3) " transformazione viewport":
da [-1,+1]2 a [0..resx]x[0..resy] (pixels)
2y
-zv0
v1
v2
view Coordinates(a.k.a. eye Coordinates)
yx
-zv0
v1
v2
v0
v2
v1
v0v1
v2
screen Space
3
normalized projectedcoordinates
1
-1 1
-1
x
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 22
x
Object Coordinates
• Dare ad ogni oggetto il suo sistema di coordiante privato: il suo Object Coordinates;
y
yy
y
x
xx
x
z
z
z
z
y
z
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 23
Object Coordinates
• Dare ad ogni oggetto il suo sistema di coordiante privato: il suo Object Coordinates;
• Durante il transform, prima di tutto portare ogni oggetto nello sist di coordinate comuni:
da Object Coordinates a World Coordiantes
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 24
Transform
x
y
z
v0v1
v2
world Coordinates
1
1) transformazione di vista2) transformazione di proiezione3) transformazione di viewport
2y
-zv0
v1
v2
view Coordinates(a.k.a. eye Coordinates)
yx
-zv0
v1
v2
v0
v2
v1
v0v1
v2
screen Space
3
normalized projectedcoordinates
1
-1 1
-1
x
x
y
z
v0
v1
v2
object Coordinates
0
0) transformazione di modellazione
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 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 25
• :"transformazione di vista":portare la scena davanti alla camera
1) Transformazione di vista
sistema di riferimentodella camera(eye coords)
ye
xe
-ze Oe y
xz
0
sistema di riferimentodel mondo(world coords) è un cambio di sistema di
riferimento