computer graphics

26
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

Upload: tertius-aric

Post on 02-Jan-2016

13 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

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

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 - 26

1) Transformazione di vista

• La posso fare con una serie di– traslazioni– rotazioni

• ripassino di geometria...