Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di...
-
Upload
fausto-graziano -
Category
Documents
-
view
220 -
download
2
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