Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di...

Post on 01-May-2015

220 views 2 download

Transcript of Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di...

Computer Graphics

Marco Tarini

Università dell’Insubria

Facoltà di Scienze MFN di Varese

Corso di Laurea in Informatica

Anno Accademico 2004/05

Lezione 17: dose finale

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

Alcuni argomenti che non abbiamo trattato (o abbiamo trattato poco)• Modelling:

– superfici di suddivisione

• Paradigmi alternativi di rendering:– raytracing– radiosity

• Tecniche che usano tessiture:– opacity-maps– bump-maps

• Altri contesti applicativi:– Rendering non fotorealistico

• I progressi recenti in HW grafico:– HW programmabile

Computer Graphics

Marco Tarini

Università dell’Insubria

Facoltà di Scienze MFN di Varese

Corso di Laurea in Informatica

Anno Accademico 2004/05

Lezione 16: dose finale

Modelling:superfici di

suddivisione

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 4/40

Superfici di suddivisione

• Modo molto diffuso per costruire mesh– 1: fare mesh di controllo

• a bassissima risoluzione• a mano

– 2: raffinarla automaticamente• iterativamente• (e ad ogni interazione si aggiungono facce e

vertici)

• molti schemi matematici differenti– con diverse peoprietà

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

Superfici di suddivisione

• Esempio: schema butterfly

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

Superfici di suddivisione

• Esempio: schema butterfly

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

Superfici di suddivisione

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 8/40

Superfici di suddivisione

Anche iterativamente:1- Modelling base2- suddivisione3- Ritocco4- Suddivisione...

Computer Graphics

Marco Tarini

Università dell’Insubria

Facoltà di Scienze MFN di Varese

Corso di Laurea in Informatica

Anno Accademico 2004/05

Lezione 16: dose finale

Altri Paradigmidi

RenderingRAY-TRACING

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 10/40

Ray-Tracing

• In questo corso abbiamo vistoRendering...– Real Time (o almeno interattivo)– Basato sull'HW– Rasterization based...

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 11/40

Ray-Tracing

• Idea:– per ogni pixel sullo schermo:

• mando un raggio (il "raggio primario" di quel pixel)

• trovo la sua 1ma intersezione con un oggetto della scena

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 12/40

Ray-Tracing

• Implementazione:– tutta basata su

intersezione raggio-primitive (che va super-ottimizzata)

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 13/40

Ray-Tracing

• Facile fare: ombre portate (nette)raggio primario

raggio di shadowing (interseca, quindi il punto e' in ombra)

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 14/40

Ray-Tracing

• Facile fare: riflessioni speculari (anche multiple)raggio primario

raggio di riflessione

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 15/40

Ray-Tracing

• Facile fare: semitrasparenze con rifrazioniraggio primario

raggio di riflessione

raggio di rifrazione

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 16/40

Ray-Tracing: tipici esempi di risultati

( Advanced Rendering Toolkit - Alexander Wilkie - 1999)

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 17/40

Ray-Tracing: tipici esempi di risultati

( Advanced Rendering Toolkit - Alexander Wilkie - 1999)

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 18/40

Ray-Tracing : tipici esempi di risultati

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 19/40

Ray-Tracing : costo

• E' computazionalmente caro– costanti alte– ma in verità SUBLINEARE col numero di

primitive• se vengono usate strutture dati adeguate

• In pratica, usato solo per rendering off-line

• Nota: non usa nessun HW specializzato– ma la CPU normale

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 20/40

Ray-Tracing: HW apposito

Scene: 5 alberi (milionate di triangoli) 28mila girasoli (11 tipi), 35K triangoli ciascuno.

OpenRT ProjectinTrace Realtime Ray Tracing Technologies GmbHMPI Informatik, Saarbrueken - Ingo Wald 2004

HW specializzatoper fare RayTracing.

Per ora, solo prototipinei laboratori.

Stessa idea base (parallelizzare).

Implementazionedel tutto differentedal nostro pipelinedi rasterizzazione.

Sfonderà?

Computer Graphics

Marco Tarini

Università dell’Insubria

Facoltà di Scienze MFN di Varese

Corso di Laurea in Informatica

Anno Accademico 2004/05

Lezione 16: dose finale

Altri Paradigmidi

RenderingRadiosity

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

Radiosity

• Modo per fare illuminazione globale• Gestisce bene riflessioni multiple diffuse

– ciò che noi avevamo approssimato sommariamente col termine AMBIENT

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 23/40

Radiosity: Concetto

• Dividere la scena in pezzetti– circa uguali– (non come i nostri 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 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 24/40

Radiosity: Concetto

• Dividere la scena in pezzetti• Per ogni coppia di pezzetti i e j

– calcolare quanta luce ...• che parte da i• e si diffonde in tutte le direzioni (DIFFUSE!)

– ... raggiunge j

• Alcuni pezzetti emanano luce propria (le luci!)

– gli altri diffondono solo quella che gli arriva da fuori

• Poi risolvere tutto (facile a dirsi)

la matriciona corrsipondentee' detta Form Factor

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 25/40

Radiosity: Come

• Vecchia scuola:– invertire una matrice enorme

• Come si fa davvero:– metodi randomizzati stocastici (Monte Carlo)

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 26/40

Radiosity: Costo

• E troppo caro da calcolare in tempo reale– e sarà cosi a lungo

• Ma... il risultato di questa computazione NON dipende dal punto di vista!– può essere salvato nella scena

• come colore per vertice• in una tessitura • etc

– e renderizzato real time tramite rasterizzazione:• almeno finchè cambia solo il punto di vista

– (ne' l'illuninazione ne' la scena)

• togliendo il lighting (almento le componenti AMBIENT e DIFFUSE)

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 27/40

Radiosity: tipici esempi di risultati

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 28/40

Torniamo al Rendering

basato su Rasterizzazione

eseguito su HW grafico specializzato

Computer Graphics

Marco Tarini

Università dell’Insubria

Facoltà di Scienze MFN di Varese

Corso di Laurea in Informatica

Anno Accademico 2004/05

Lezione 16: dose finale

Opacity Maps

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 30/40

Texture mapping e Alpha Test

• In una tessitura, ogni texel può avere anche una componente alpha– Colore + trasparenza

• Un canale alpha può essere composto di soli – 1 completamente opaco– 0 completamente trasparente

• frammenti corrispondenti cassati dall'alpha-test

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

Texture mapping e Alpha Test

• Trucco molto utile:– es: simboli e testo sulla scena...– es: sistemi di particelle

con particelle grandi

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 32/40

Texture mapping e Alpha Test

• Trucco molto utile:– es: erba...

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 33/40

Texture mapping e Alpha Test

• Trucco molto utile:– es: drappi, barba...

by Micheal Filipowski2004

tessitura

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 34/40

Texture mapping e Alpha Test

• Trucco molto utile:– es: alberi

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 35/40

Texture mapping e Alpha Test

• Trucco molto utile:– es: pelliccia

tessitura(ripetuta)

Computer Graphics

Marco Tarini

Università dell’Insubria

Facoltà di Scienze MFN di Varese

Corso di Laurea in Informatica

Anno Accademico 2004/05

Lezione 16: dose finale

Bump-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 0 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 37/40

Bump-Mapping

Fram

men

ti&

att

rib

uti

in

terp

ola

ti

Vert

ici

& loro

att

rib

uti

Screen buffer

Vert

ici

pori

ett

ati

& a

ttri

bu

ti

com

pu

tati

rasterizer

triangoli

set-up

rasterizer

segmenti

set-up

rasterizer

punti

set-up

com

puta

zioni

per

vert

ice

Texture RAM

interpolocoordinat

etexture

coordinate

texture interpolat

e

compreso:

coordinate

texture(per vertice!)

bumpmap:ogni texel(la codifica di) una normale

texture look-up,lighting(usando

la normale)

com

puta

zioni

per

fram

mento

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 38/40

Bump-Mapping

• E' un metodo molto diffuso– per aggiungere dettaglio geometrico

in maniera efficace

• E' un froma di per-fragment lighting– il lighitng è computato per ogni frammento– come ad esempio anche il Phong shading

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 39/40

Bump-Mapping

stessa geometria (una sfera)bumpmaps diverse

Computer Graphics

Marco Tarini

Università dell’Insubria

Facoltà di Scienze MFN di Varese

Corso di Laurea in Informatica

Anno Accademico 2004/05

Lezione 16: dose finale

Renderingnon fotorealistico

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 41/40

Rendering non fotorealistico

• NPR = Non Photorealistic rendering• Un rendering dove l'obiettivo non è il

realismo ma:– la chiarezza

• immagine che da informazione nel modo più chiaro possibile

– oppure l'imitazione di uno stile umano:• stile toon (cartone animato)• stile disegno a matita• stile stampa• stile chiaroscuro a matita• ...

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 42/40

Rendering non fotorealistico

• Esempio: rendering in stile disegni a matita

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 43/40

Rendering non fotorealistico

• Esempio: hatching

Emil Praun, Hugues Hoppe, Matthew Webb, Adam Finkelstein 2001

modello 3D rendering (in tempo reale)

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 44/40

Rendering non fotorealistico

• Esempio: renderings stile toonQuesti sono rederingsoff-line.

Ma esistono algoritmiper il nostro HW graficoper ottenere questotipo di effettiin tempo reale !

bordi come linee scure

shading quantizzato

(due gradazioni di verde, invece di una sfumatura

continua)

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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 45/40

Rendering non fotorealistico

Computer Graphics

Marco Tarini

Università dell’Insubria

Facoltà di Scienze MFN di Varese

Corso di Laurea in Informatica

Anno Accademico 2004/05

Lezione 16: dose finale

Programmabilitadella 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 5 / 0 6 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 47/40

Bump-Mapping

Fram

men

ti&

att

rib

uti

in

terp

ola

ti

Vert

ici

& loro

att

rib

uti

Screen buffer

Vert

ici

pori

ett

ati

& a

ttri

bu

ti

com

pu

tati

rasterizer

triangoli

set-up

rasterizer

segmenti

set-up

rasterizer

punti

set-up

PROGRAMMABILITA' ! ! !

com

puta

zioni

per

vert

ice

com

puta

zioni

per

fram

mento