• Non ci sono risultati.

• Rasterization based

N/A
N/A
Protected

Academic year: 2021

Condividi "• Rasterization based"

Copied!
4
0
0

Testo completo

(1)

1

Paradigmi di rendering

(classi di algoritmi di rendering)

• Ray-Tracing

• Rasterization based

• Image based (per es. light field)

• Radiosity

• Point-splatting

• Photon mapping

• ...

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a 22

Paradigmi di rendering

(classi di algoritmi di rendering)

• Ray-Tracing

• Rasterization based

• Image based (per es. light filed)

• Radiosity

• Point-splatting

• Photon mapping

• ...

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Rendering Paradigm:

(Triangle (Triangle (Triangle

(Triangle----) Rasterization Based ) Rasterization Based ) Rasterization Based ) Rasterization Based

detto anche:

Transform and Lighting Transform and Lighting Transform and Lighting Transform and Lighting

( T ( T ( T ( T &&&& LLLL ))))

I. Che si usino solo

le seguenti primitive di rendering : triangoli

triangoli triangoli

triangoli,,,, segmenti segmenti,,,, segmenti segmenti punti punti punti punti

23

detto anche: Transform & Lighting

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

screen buffer Punti 3D

Segmenti 3D Triangoli 3D

scheda grafica

Transform

&

Lighting video

24

Transform & Lighting...

• Transform :

– trasformazioni di sistemi di coordinate

– scopo: portare la scena davanti all'obiettivo della nostra macchina fotografica (virtuale)

– 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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a 25

Rasterization-based HW-supported rendering

• anche riferito come

Transform and Lighting (TTTT&&&&LLLL) paradigm

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Scena 3D rendering screen buffer

composta da primitive di composta da primitive di composta da primitive di composta da primitive di pochissimi tipi:

pochissimi tipi: pochissimi tipi:

pochissimi tipi:

• punti punti punti punti

• linee linee linee linee

MA SOPRATUTTO MA SOPRATUTTOMA SOPRATUTTO MA SOPRATUTTO

• triangoli triangoli triangoli triangoli

primitive primitive primitive primitive di di di di rendering rendering rendering rendering

26

Rasterization-based HW-supported rendering

• punto primo: tutto sia composto da triangoli tutto sia composto da triangoli tutto sia composto da triangoli tutto sia composto da triangoli (3D) – o al limite da punti, o segmenti

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

x

y z

v

0

=( x

0

, y

0

, z

0

)

v

1

=( x

1

, y

1

, z

1

) v

2

=( x

2

, y

2

, z

2

)

27

(2)

2

... Rasterization-Based Rendering

• più specificatamente...

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

vertici 3D

fragment fragment fragment fragment process process process process pixels pixels pixels pixels

finali finali finali finali

"frammenti"

(fragments) transform

transform transform transform

z x

v0 v1

v2

rasterizer rasterizer rasterizer rasterizer

y

triangolo 2D a schermo

(2D screen triangle) v0 v1

v2

il lighting invece avviene insieme alla fase "transform"

e/o alla fase "fragment process"

28

... Rasterization-Based Rendering

• più specificatamente...

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

vertici 3D

fragment fragment fragment fragment process process process process pixels pixels pixels pixels

finali finali finali finali

"frammenti"

(fragments) transform

transform transform transform

z x

v0 v1

v2

rasterizer rasterizer rasterizer rasterizer

y

triangolo 2D a schermo

(2D screen triangle) v0 v1

v2

carico di lavoro per vertice (sottosistema geometrico)

carico di lavoro per frammento (~per pixel)

(sottosistema raster)

29

... Rasterization-Based Rendering

• Dove è il collo di bottiglia?

– nel sistema geometrico?

• (l'applicaizone è transofrm-limited sinonimo: geometry-limited) – nel sistema raster?

• (applicaizone è fill-limited) – nel bus?

• (applicaizone è bus-limited sin: bandwidth-limited) – nella CPU?

• (applicaizone è CPU-limited)

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

perché è importante scoprirlo?

come si può predirre (in teoria)?

come si può verificare in pratica?

30

Note sulla GPU odierne

• Stima delle prestazioni:

i produttori scrivono tanti numeri, tra i quali:

– Trasformazioni per secondo (sottosistema geometrico) – Fill-rate

(KB al sec, o in frammenti al secondo) – Dimensioni Memoria Video

• I primi due sono da prendersi con le molle – Sono prestazioni picco,

(nella pratica valgono solo su apposito esempio)

– ma danno un'idea

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a 31

Esercizio

• State effettuando il rendering di un modello composto da un milione di triangoli su un display con risoluzione 1280 x1024 pixel. Il rendering finale occupa l'80% del display. La scheda che state utilizzando ha una performance di 20 milioni di triangoli al secondo ed un fill-rate di 20 Mpixel al secondo.

• Qual'è il numero massimo di fotogrammi al secondo (fps) che potete ottenere?

• Il sistema è fill-limited o geometry-limited?

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Soluzione:

– 1280x1024x0.8 = 838.860,8 numero di pixels da accendere per un rendering – 20*2^20=20.571.920 numero di pixels che la scheda può rasterizzare al sec – Il sottosistema raster può produrre:

20.571.920 / 838.860,8 = 25 fotogrammi al secondo – Il sottositema geometrico può produrre

20 * 10^6 / 10^6 = 20 fotogrammi al secondo

Quindi la risposta è 20, e il sistema è transform-limited.

32

Rasterization-Based HW-Supported 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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer

co m pu ta zi on i pe r f ra m m en to set- up

componenti fisiche dell'HW!

Pipeline → Parallelismo → Efficienza

inoltre, molte componenti sono replicate

(negli stages collo di bottiglia)

Fragment proces.

Vertex porcessor

33

(3)

3

Cenni storici: nei PC...

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer

co m pu ta zi on i pe r f ra m m en to set- up

1996

general purpose HW (con CPU)

dedicated HW (con GPU)

34

Cenni storici: nei PC...

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer

co m pu ta zi on i pe r f ra m m en to set- up

1997

general purpose HW (con CPU)

dedicated HW (con GPU)

35

Cenni storici: nei PC...

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer

co m pu ta zi on i pe r f ra m m en to set- up

1999

general purpose HW (con CPU)

dedicated HW (con GPU)

36

Rasterization-Based HW-Supported Rendering:

triangoli triangoli triangoli triangoli

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer

co m pu ta zi on i pe r f ra m m en to

z y

x v0 v1

v2

set- up

v0 v1

v2

37

Rasterization-Based HW-Supported Rendering:

triangoli triangoli triangoli triangoli

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

3 Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

3 Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer triangoli

co m pu ta zi on i pe r f ra m m en to

z y

x v0 v1

v2

set- up

v0 v1

v2

38

Rasterization-Based HW-Supported Rendering:

segmenti segmenti segmenti segmenti

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

2 Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

2 Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer triangoli

co m pu ta zi on i pe r f ra m m en to

z y

x v0

v1

set- up

v0

v1

rasterizer segmenti set- up

39

(4)

4

Rasterization-Based HW-Supported Rendering:

punti punti punti 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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Ve rti ce (p un to in R

3

) pixel

finali

(nello screen-buffer)

Ve rti ce pr oi et ta to (p un to in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer triangoli

co m pu ta zi on i pe r f ra m m en to

z y

x v1

set- up

v1

rasterizer segmenti set- up

rasterizer punti set- up

esempio di point "splat"

(point splatting)

40

Rasterization-Based HW-Supported Rendering:

alcune regole

1. Ogni vertice viene trasformato trasformato trasformato trasformato – proiettato da spazio 3D (spazio “oggetto”)

a spazio 2D (spazio “schermo”) – indipendentemente dagli altri vertici

• (deve poter avvenire in parallelo!) – indipendentemente da quale primitiva fa parte 2. Ogni primitiva viene rasterizzata rasterizzata rasterizzata rasterizzata in 2D

– primitiva = triangolo, segmento, o punto

• un rasterizzatore distinto per ogni tipo – indipendentemente dalle altre primitive – rasterizzare = produrre i frammenti corrispondenti 3. Ogni frammento in pos [X,Y] viene processato

– indipendentemente dagli altri frammenti – indipendentemente da quale primitiva lo ha generato – output della computazione: un pixel nello screen buffer (RGB)

• quello a pos [X,Y] (prefissata, la computazione decide solo RGB, non X,Y) 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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

in p ar al le lo (in c as ca ta ) (in p ip el in e) (a c at en a di m on ta gg io )

41

Rasterization-based HW-supported rendering

• tutto sia composto da triangoli (3D) – o al limite da punti, o segmenti

•ma....

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 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

...non tutto nasce composto di triangoli quasi nulla

42

Riferimenti

Documenti correlati

Ai miei compagni d’armi con i quali ho condiviso successi e disfatte affinché, anche in futuro, si possa lavorare assieme.. Alla “signorina” Maryia (Masha) Rylcova che

Gli obiettivi si raggiungono con un unico sistema integrato, che consenta la gestione delle diverse componenti del Piano (modulo di gestione delle varianti, modulo di gestione

Per inserire l’organigramma aggiornato sulla pagina della propria sede didattica è necessario copiare in formato word la prima pagina, evidenziare le modifiche da fare e

La scheda che state utilizzando ha una performance di 20 milioni di triangoli al secondo ed un fill-rate di 20 Mpixel al secondo.. Ogni vertice viene trasformato

3. In una scuola elementare, frequentata da 245 alunni, sono sta · attivati due corsi pomeridiani. Le bionde sono tutte carine. Se le precedenti informazioni sono corrette,

Allora esiste una funzione lineare a z per cui ˆz

La somma delle ampiezze degli angoli interni di un triangolo è uguale all’ampiezza dell’angolo piatto, quindi

(a) supponiamo di denire il parallelogramma come un quadrilatero che ha in centro di simmetria (chiamiamo O tale centro); allora, se A, B, C e D sono nell'ordine i vertici