Computer Graphics
Lezione 3:
HW based rendering
Università dell’Insubria
Facoltà di Scienze MFN di Varese
Corso di Laurea in Informatica
Anno Accademico 2006/07
Marco Tarini
Riassunto puntate precedenti 1/3
• Computer Graphics ( CG )...
• in particolare:
– hardware-supported real-time rendering
• detto anche "HW accelerated rendering"
• hardware dedicato al rendeing
GPU – Graphic Processing unit
vs
CPU – Central Processing Unit
Marco Tarini ‧ Computer Graphics ‧
2006/07 ‧ Università dell’Insubria - 2
Riassunto puntate precedenti 2/3
RENDERING PARADIGM:
(Triangle-) Rasterization Based
detto anche:
•
•
•
•
•
•
Raytracing
Rasterization basedTransform and
Image based (per es. light filed)
Radiosity
Point-splatting
I. Che si usino solo
...
Lighting (T&L)
le seguenti primitive di rendering :
triangoli, segmenti, punti
(o al limite quads, con diagonal split)
Marco Tarini ‧ Computer Graphics ‧
2006/07 ‧ Università dell’Insubria - 3
Riassunto puntate precedenti 3/3
Forme geo.
di base
Superfici
parametriche
n-agoni
Dati Volumetrici
Superfici implicite
"al volo"
Triangoli
Quads
Campi d'altezza
r
e
n
d
e
r
i
n
g
Nuvole di punti
Marco Tarini ‧ Computer Graphics ‧
2006/07 ‧ Università dell’Insubria - 4
Transform & Lighting
Punti 3D
Segmenti 3D
Triangoli 3D
Transform
&
Lighting
screen
buffer
video
scheda grafica
Marco Tarini ‧ Computer Graphics ‧
2006/07 ‧ Università dell’Insubria - 5
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
Marco Tarini ‧ Computer Graphics ‧
2006/07 ‧ Università dell’Insubria - 6
... Rasterization-Based Rendering
• più specificatamente...
y
v1
v0
x
v2
vertici
3D
z
transform
v1
v0
fragment pixels
process finale
rasterizer
v2
triangolo 2D
a schermo
(2D screen
triangle)
"frammenti"
(fragments)
il lighting invece avviene
insieme alla fase "transform"
e/o alla fase "fragment process"
Marco Tarini ‧ Computer Graphics ‧
2006/07 ‧ Università dell’Insubria - 7
computazioni
per frammento
Z
rasterizer
(candidati pixels)
setup
frammenti
(punti in R2)
Vertici
proiettati
Vertici
(punti in R3)
computazioni
per vertice
Rasterization-Based HW-Supported Rendering:
triangoli
pixel
finali
(nello
screen-buffer)
y
v1
v0
x
v2
v1
v0
z
v2
Marco Tarini ‧ Computer Graphics ‧
2006/07 ‧ Università dell’Insubria - 8
computazioni
per frammento
Z
rasterizer
(candidati pixels)
setup
frammenti
(punti in R2)
Vertici
proiettati
computazioni
per vertice
Vertici
(punti in R3)
Rasterization-Based HW-Supported Rendering
pixel
finali
(nello
screen-buffer)
Fragment "shader"
Vertex "shader"
componenti fisiche dell'HW!
Pipeline  Parallelismo  Efficienza
inoltre, molte componenti sono replicate
(negli stages collo di bottiglia)
Marco Tarini ‧ Computer Graphics ‧
2006/07 ‧ Università dell’Insubria - 9
computazioni
per frammento
Z
rasterizer
(candidati pixels)
setup
dedicated HW
(con GPU)
frammenti
(punti in R2)
Vertici
proiettati
computazioni
per vertice
Vertici
(punti in R3)
Cenni storici: nei PC...
pixel
finali
(nello
screen-buffer)
1996
general purpose
HW (con CPU)
Marco Tarini ‧ Computer Graphics ‧
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
computazioni
per frammento
Z
rasterizer
(candidati pixels)
setup
dedicated HW
(con GPU)
frammenti
(punti in R2)
Vertici
proiettati
computazioni
per vertice
Vertici
(punti in R3)
Cenni storici: nei PC...
pixel
finali
(nello
screen-buffer)
1997
general purpose
HW (con CPU)
Marco Tarini ‧ Computer Graphics ‧
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
computazioni
per frammento
Z
rasterizer
(candidati pixels)
setup
dedicated HW
(con GPU)
frammenti
(punti in R2)
Vertici
proiettati
computazioni
per vertice
Vertici
(punti in R3)
Cenni storici: nei PC...
pixel
finali
(nello
screen-buffer)
1999
general purpose
HW (con CPU)
Marco Tarini ‧ Computer Graphics ‧
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
computazioni
per frammento
Z
rasterizer
triangoli
(candidati pixels)
setup
frammenti
(punti in R2)
3 Vertici
proiettati
3 Vertici
(punti in R3)
computazioni
per vertice
Rasterization-Based HW-Supported Rendering:
triangoli
pixel
finali
(nello
screen-buffer)
y
v1
v0
x
v2
v1
v0
z
v2
Marco Tarini ‧ Computer Graphics ‧
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
setup
rasterizer
segmenti
computazioni
per frammento
rasterizer
triangoli
(candidati pixels)
Z
setup
frammenti
(punti in R2)
2 Vertici
proiettati
2 Vertici
(punti in R3)
computazioni
per vertice
Rasterization-Based HW-Supported Rendering:
segmenti
pixel
finali
(nello
screen-buffer)
y
v1
v1
v0
x
v0
z
Marco Tarini ‧ Computer Graphics ‧
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
setup
rasterizer
triangoli
setup
rasterizer
segmenti
computazioni
per frammento
rasterizer
punti
(candidati pixels)
Z
setup
frammenti
(punto in R2)
Vertice
proiettato
computazioni
per vertice
Vertice
(punto in R3)
Rasterization-Based HW-Supported Rendering:
punti
pixel
finali
(nello
screen-buffer)
y
v1
x
v1
z
esempio di point "splat"
(point splatting)
Marco Tarini ‧ Computer Graphics ‧
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
setup
rasterizer
triangoli
setup
rasterizer
segmenti
computazioni
per frammento
rasterizer
punti
(candidati pixels)
Z
setup
frammenti
(punti in R2)
Vertici
proiettati
Vertici
(punti in R3)
computazioni
computazioni
vertice
per vertice
per
Rasterization-Based HW-Supported Rendering:
pixel
finali
(nello
screen-buffer)
y
v1
v0
x
v2
v1
v0
z
v2
Marco Tarini ‧ Computer Graphics ‧
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
Transform
• Per ogni vertice:
y
v1
v0
x
v2
?
z
world Coordinates
Marco Tarini ‧ Computer Graphics ‧
v1
v0
v2
screen Coordinates
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
• Intanto, dipende dalla pos della camera (macchina fotografica)
– detta anche: pos del viewer
– o eye position
– o POV (Point of View)
(a)
(b)
Marco Tarini ‧ Computer Graphics ‧
(a)
(b)
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
• Strategia:
1) "transformazione di vista":
portare la scena davanti alla camera
• e non viceversa ;-)
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)
y
v1
v0
x
y
v2
z
1
v1
-z
x
v2
v0
view Coordinates
M a r c o T a r i n i ‧ C o m p u t e (a.k.a.
r G r aeye
p h i Coordinates)
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
world Coordinates
Transform
• Strategia:
1) "transformazione di vista":
portare la scena davanti alla camera
2) "transformazione di proiezione":
proietta la geometria sul piano di proiezione
- necessario sapere i parametri interni della "camera virtuale"
- in particolare, la lunghezza focale
- questo causa anche la distorsione prospettica
y
v1
v0
x
y
v2
z
1
v1
-z
x
v0
1
v2
2
v0
1
v2
-1
v1
y
v1
x
-z
v2
v0
-1
view Coordinates
normalized projected
M a r c o T a r i n i ‧ C o m p u t e (a.k.a.
r G r aeye
p h i Coordinates)
c s ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ coordinates
I n s u b r i a - 20
world Coordinates
Transform
• Strategia:
1) "transformazione di vista":
portare la scena davanti alla camera
2) "transformazione di proiezione":
proietta la geometria sul piano di proiezione
3) " transformazione viewport":
da [-1,+1]2 a [0..resx]x[0..resy] (pixels)
v1
v0
v2
screen Space
3
y
v1
v0
x
y
v2
z
1
v1
-z
x
v0
1
v2
2
v0
1
v2
-1
v1
y
v1
x
-z
v2
v0
-1
view Coordinates
normalized projected
M a r c o T a r i n i ‧ C o m p u t e (a.k.a.
r G r aeye
p h i Coordinates)
c s ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ coordinates
I n s u b r i a - 21
world Coordinates
Object Coordinates
• Dare ad ogni oggetto il suo sistema di coordiante privato:
il suo Object Coordinates;
z
y
y
y
x
x
y
z
y
x
z
x
x
Marco Tarini ‧ Computer Graphics ‧
z
z
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
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
Marco Tarini ‧ Computer Graphics ‧
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
Transform
y
v0
v1
x
v2
z
object Coordinates
0) transformazione di modellazione
1) transformazione di vista
2) transformazione di proiezione
3) transformazione di viewport
v1
v0
v2
screen Space
0
3
y
v1
v0
x
y
v2
z
1
v1
-z
x
v0
1
v2
2
v0
1
v2
-1
v1
y
v1
x
-z
v2
v0
-1
view Coordinates
normalized projected
M a r c o T a r i n i ‧ C o m p u t e (a.k.a.
r G r aeye
p h i Coordinates)
c s ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ coordinates
I n s u b r i a - 24
world Coordinates
1) Transformazione di vista
• :"transformazione di vista":
portare la scena davanti alla camera
ye
xe
y
x
-ze
sistema di riferimento
della camera
(eye coords)
0
sistema di riferimento
del mondo
(world coords)
Oe
z
è un cambio di sistema di riferimento
Marco Tarini ‧ Computer Graphics ‧
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
1) Transformazione di vista
• La posso fare con una serie di
– traslazioni
– rotazioni
• ripassino di geometria...
Marco Tarini ‧ Computer Graphics ‧
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 - 26
Scarica

ppt