• Non ci sono risultati.

& loro attributi

N/A
N/A
Protected

Academic year: 2021

Condividi "& loro attributi"

Copied!
22
0
0

Testo completo

(1)

Computer Graphics

Marco Tarini

Università dell’Insubria Corso di Laurea in Informatica Anno Accademico 2014/15

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

Lighting: intro

• L’altra metà del rendering

• Determinare la luce

– quanta luce – di che colore

che arriva

– da un punto della scena – all’occhio

• Problema complesso...

Lighting: intro

• Output:

– colore percepito per un dato punto

• Input:

– caratteristiche dell’oggetto illuminato (“materiale”)

• (es: carta bagnata, plastica ruvida, …)

• (o banalmente, «di che colore è» - vedi poi) – caratteristiche della luce che illumina

• (dove sono le fonti, che intensità / colore hanno) – e forma degli oggetti / della scena

• soprattutto, orientamenti delle superfici, cioè le normali

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

Lighting: alcuni fattori

LUCE

OCCHIO OGGETTO

trasmissione (con rifrazione) assorbimento

riflessione interna

assorbimento da parte del mezzo

(e.g. nebbia)

scattering sotto la superficie

ALTRA LUCE

ombrain

riflessione

(2)

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

Lighting: alcuni fattori

riflessioni multiple: luce ogg1 ogg2 … occhio

LUCE

OCCHIO OGGETTO

riflessioni multiple (illuminazione indiretta)

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

Lighting: globale VS locale

– tiene conto solo di:

• condizioni di luce – n. luci – loro pos – loro colore

• pezzetto della superficie da illuminare

– orientamento (normale) – caratteristiche del

materiale

» per es: colore, lucentezza

• posiz. osservatore (POV) – il resto del mondo non c’è

– riflessioni multiple – ombre

– scattering sottosuperficiale – rifrazione – ...

Illuminazione locale Illuminzione globale

torna molto più facile da fare

con il nostro Hardware

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

Lighting locale:

emitter oggetto occhio (e nient’altro!)

LUCE

OCCHIO OGGETTO

riflessione

n

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

Lighting locale più in generale possibile:

l'equazione della radianza

) , ( ) , ( ) ,

( r e r r r

o x L x L x

L ω r = ω r + ω r

i i

i i r i r r

r x f x L x n d

L

i

ω ω

ω ω

ω ω

ω

r r r r r

r r

r

) )(

, ( ) , , ( )

,

( = ∫ ⋅

(3)

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

Lighting locale più in generale possibile:

l'equazione della radianza [ simboli ] punto sulla superficie da illuminare;

direzione da x verso la posizione dell'osservatore direzione da cui proviene il raggio di luce incidente

quantità di luce incidente:

luce esterna che raggiunge x dalla dir w i

coseno dell’angolo di incidenza rispetto alla normale alla superficie (vedi dopo)

x

) ( r i n r

ω ⋅ ω r i

ω r r

) ,

( i

i x

L ω r

Ω dominio di tutte le direzioni possibili

(cioè tutte i vettori normalizzati… che arrivano da davanti) (cioè la sup. della semi-sfera unitaria)

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

Lighting locale più in generale possibile:

l'equazione della radianza

) , ( ) , ( ) ,

( r e r r r

o x L x L x

L ω r = ω r + ω r

i i

i i r i r r

r x f x L x n d

L

i

ω ω

ω ω

ω ω

ω

r r r r r

r r

r

) )(

, ( ) , , ( )

,

( = ∫ ⋅

Componente emissiva

Componente emissiva

• Usata solo per quei pochi materiali che emettono luce propria

– modella solo il percorso: emitter occhio (non emitter oggetto occhio)

– cioè la luce emessa non illumina nient’altro

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

Lighting locale più in generale possibile:

l'equazione della radianza

) , ( ) , ( ) ,

( r e r r r

o x L x L x

L ω r = ω r + ω r

i i

i i r i r r

r x f x L x n d

L

i

ω ω

ω ω

ω ω

ω

r r r r r

r r

r

) )(

, ( ) , , ( )

,

( = ∫ ⋅

Ambiente

illuminazione di

(4)

Luce incidente

• Per ogni posizione modella

la distrubuz di luce incidente

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

) ,

( i

i x

L ω r ) ...

( x , L i

= quanta luce arriva addosso ad dalla direzione x ω r i

5

ω r i

x

i 13

ω r x

Modella gli ambienti di illuminzaione possibili. Es:

• stanza con finestra aperta

• giornata di sole

• gioranta coperta

• una discoteca

Cioè (nella metafora dei lucidi successivi) quante “palle da tennis” arrivano ad x da ciascuna direzione!

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

Lighting locale più in generale possibile:

l'equazione della radianza

) , ( ) , ( ) ,

( r e r r r

o x L x L x

L ω r = ω r + ω r

i i

i i r i r r

r x f x L x n d

L

i

ω ω

ω ω

ω ω

ω

r r r r r

r r

r

) )(

, ( ) , , ( )

,

( = ∫ ⋅

BRDF

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

Lighting locale più in generale possibile:

l'equazione della radianza [ parametri ]

) , ,

( i r

r x

f ω r ω r funzione che determina la frazione di luce incidente che viene riflessa nelle varie direzioni (risponde a: " quanta della luce che arriva in x dalla dir w

i

sarà riflessa proprio verso w

r

? ")

• E’ la funzione che descrive il materiale dell'oggetto

– dipende da proprietà microscopiche, ottiche etc del materiale

• Se è costante in x ⇒ materiale uniforme:

– stesso materiale in ogni punto – la funz (senza il 1mo parametro)

prende nome di BRDF di quel materiale

– BRDF = Bidirectional Reflectance Distribution Function)

• descrive le proprietà ottiche del materiale

(per es: se è lucido, se ha riflessi porpora, se è opaco, o cangiante – come il velluto, o metallico, cromato… etc, etc)

La BRDF di un materiale

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

f r =

ω r i

ω r r fotone =

) , ( i r

f r ω r ω r = su 100 che arrivano a dalla dir ,

quante verrano da lui rimbalzate proprio nella dir ?

(al variare di e ) ω r

i

ω r

r

ω r

r

ω r

i

Ogni materiale, la sua BRDF:

- metallo cromato - raso - legno - stoffa - gesso - carta - specchio…

Funzione di 4 dimensioni!

(una direzione = 2 dimensioni)

(5)

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

Lighting locale più in generale possibile:

l'equazione della radianza

) , ( ) , ( ) ,

( r e r r r

o x L x L x

L ω r = ω r + ω r

i i

i i r i r r

r x f x L x n d

L

i

ω ω

ω ω

ω ω

ω

r r r r r

r r

r

) )(

, ( ) , , ( )

,

( = ∫ ⋅

legge coseno del

Sottoproblema

• Dalla dir arrivano L lumens (N “palle da tennis”) : quante ne riceve un intorno di ?

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

ω r i

x

x

i

n r x = ω r

Sottoproblema

• Dalla dir arrivano L lumens (N “palle da tennis”) : quante ne riceve un intorno di ?

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

ω r i

x

x ω r i

n r x

Sottoproblema

• Dalla dir arrivano L lumens (N “palle da tennis”) : quante ne riceve un intorno di ?

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

ω r i

x

x ω r i

n r x

(6)

Johann Heinrich Lambert 1728 - 1777

Sottoproblema

• Dalla dir arrivano L lumens (N “palle da tennis”) : quante ne riceve un intorno di ?

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

ω r i

x

x ω r i

n r x

Soluz:

=

“La legge del coseno” ( r

i

n r ) L ω ⋅

L ) cos( α

Sottoproblema

• Dalla dir arrivano L lumens (N “palle da tennis”) : quante ne riceve un intorno di ?

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

ω r i

x

x i

ω r n r x

0 ) ( r i ⋅ n r =

ω

Luce perfettamente radente:

infatti

nessun fotone colpisce l’intorno!

Luce da dietro:

risposta: 0

(non un numero negativo) Perché l’intorno di si fa ombra da solo!

Sottoproblema

• Dalla dir arrivano L lumens (N “palle da tennis”) : quante ne riceve un intorno di ?

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

ω r i

x

ω r i

n r x

0 ) ( r i ⋅ n r <

ω

x

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

Lighting locale più in generale possibile:

l'equazione della radianza

) , ( ) , ( ) ,

( r e r r r

o x L x L x

L ω r = ω r + ω r

i i

i i r i r r

r x f x L x n d

L

i

ω ω

ω ω

ω ω

ω

r r r r r

r r

r

) )(

, ( ) , , ( )

,

( = ∫ ⋅

cos ( θ )

(ma 0 se

negativo)

(7)

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

Lighting locale più in generale possibile:

l'equazione della radianza (recap)

“La luce che riceviamo da un punto x della scena è data dalla somma della luce emessa (da quel punto) più la luce riflessa (da quel punto)”

“La luce riflessa è calcolata come la somma (nel continuo: l’integrale) dei contributi di tutte le sorgenti luminose presenti nella scena (una potenziale sorgente da ogni direzione)”

Per ogni direzione, il contributo dato dal prodotto di:

(A) quanta luce proviene da quella direzione (ambiente di illuminazione) (B) di questa quanta ne riceve l’intorno di x (legge del coseno) (C) di questa, quanda ne viene mandata verso l’osservatore dal materiale

) , ( ) , ( ) ,

( r e r r r

o x L x L x

L ω r = ω r + ω r

i i

i i r i r r

r x f x L x n d

L

i

ω ω

ω ω

ω ω

ω

r r r r r

r r

r

) )(

, ( ) , , ( )

,

( = ∫ ⋅

(A) (B)

(C)

Equazione di lighting

• L’equazione della radianza

costituisce un’equazione (o modello) di rendering molto accurato

– Il materiale è espresso da una BRDF e può essere molto accurato

– Es. BRDF catturati dal vivo oppure computati da funzioni anche complesse

• E’ ottima per un rendering offline.

• Tuttavia, è troppo onerosa per un rendering reali time

• Vediamo alcune drastiche semplificazioni possibili

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

Semplificazione N 1:

ambiente di luce discreto (e semplificato)

• Invece di

• Ipotizziamo:

– ogni punto del modello riceve la stessa luce

• (x sparisce dall’equazione)

– Arriva luce >0 solo da un piccolo numero N discreto di direzioni

• anche 1 sola (cioè N = 1 )

• dalle altre dir, non arriva alcuna luce

• l’integrale diventa una (piccola) sommatoria (su N)

• un addendo per ogni luce consierata (anche solo 1)

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

) ,

( i

i x

L ω r

1 1 0

, ω ,..., ω

N

ω r r r

Semplificazione N 1:

ambiente di luce discreto (e semplificato)

• Da integrale (su tutte le dir ingresso luci continue)

• a sommatoria (di poche luci discrete, o anche 1 ! )

• Per luci colorate, valori di intensità luce per r,g,b:

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

i i

i x d

L

i

ω ω

ω

r r

r

...

) , (

... ⋅ ⋅

=

 

 

1

0

...

...

N

i B

i G i R i

L L L

=

1

0

...

...

N

i

L i

intensità e colore

(costanti)

della luce i-esima

intensità (costante)

della luce i-esima

(8)

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

Lighting locale più in generale possibile:

l'equazione della radianza

=

 

 

=

1

0

) ( ) , , ( )

, (

N

i

i B i G i R i r i r r

r n

L L L x

f x

L r r r r r

ω ω

ω ω

intensità e colore (costanti!)

della i-esima luce

direzione di arrivo (incidente)

della i-esima luce

Semplificazione N 2 :

materiale più semplice possibile

• BRDF constante

– non dipende da dir di arrivo della luce – non dipende da dir di osservazione

(è non «view-independent»)

• Metafora: tennista completamente caotico – rimbalza i fotoni in una direzione (stocasticamente)

a caso, indipendentemente dalla dir di arrivo

• Esistono materiali reali che si comportano davvero così?

– Sì: es gesso e plastica ruvida

– Materiali completamente opachi, non lucidi, senza riflessi – Detti: materiali «(puramente) diffusivi»

o «(puramente) Lambertiani»

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

opaco in [ita] significa anche “non trasparente”.

In [eng]:

dull = not shiny (not glossy) opaque = not trasparent

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

Semplificazione N 2 :

materiale più semplice possibile («lambertiano»)

• Succede quando…

– a livello microscopico...

la superficie presenta micro-sfaccettature disposte in modo caotico

• Nota:

– le BRDF dei materiali conseguono dalle configurazioni microscopiche (e, dalle loro prorpietà elettromagnetiche)

Semplificazione N 2 :

materiale più semplice possibile («lambertiano»)

• Da funzione (variabile per dir di ingresso e uscita della luce)

• a costante, detta albedo

• Per meteriali colorati, 3 costanti, per R,G,B ripett.:

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

=

1

0

...

) , , ( ...

N

i

r i r x f ω r ω r

=

 

 

1

0

...

...

N

i B

x G x

R x

D D D

=

1

0

...

...

N

i

B x

base color

o diffusive color

(del punto x)

albedo (del punto x):

rapporto fra luce incidente

e luce riflessa (da x).

(9)

Albedo e base color

• Un materiale puramente labertiano è descritto da un unico parametro

– Albedo – se non ci interessano i colori

– Base Color (o diffuse color) – per rendering a colori

• Il Diffuse Color è la risposta intuitiva alla domanda

« di che colore è questo oggetto » – E non «di che colore lo percepisco»,

che dipende dalle condizioni di luce, dalle normali, etc.

« Di notte tutti i gatti sono bigi »

• Come tutti i parametri che definiscono i materiali, albedo / base color possono essere: costanti per oggetto, variabili sull’oggetto… (vedi poi)

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

Recap: una semplice Lighting equation (puramente diffusiva!)

=

 

 

 

 

=

1

0

) (

N

i

i B i G i R i

B x G x

R x

r n

L L L

D D D

L r r

ω

«di che colore lo percepisco»

(risultato del lighting) base color - «di che colore è»

(materiale, uno degli input del lighting) diffuse, (prodotto dot)

il fattore che da solo

determina il “chiaroscuro”

in questo modello di lighting nota, i tre

pallini che appaiono nell’eqaz.

rappresentano prodotti diversi!

quali?

Modelli (o equazioni) di lighting

• L’equazione di lighting vista è molto semplice – consiste di esclusivamente

una componente di riflessione diffusiva – prevede materiali altrettanto semplici,

descritti esclusivamente dal base color

– però è phyiscally based – il fenomeno modellato è accuratamente riprodotto (eccetto che per la tricromia)

• Vediamo ora una eq solo leggermente più complicato, quello

“storico” di OpenGL, che in include anche:

– una componente ambient

• modella (approssimando brutalmente) effetti di lighting globale – una componente di riflessione speculare

• modella (approssimando molto) BRDF non Lambertiane (x materiali lucidi) – una componente di luce emissiva

• per la luce emissiva, quasi mai utile ma costa poco

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

Modelli (o equazioni) di lighting

• Modello di lighting “storico” di OpenGL

– l’unico utilizzabile nelle versioni precedenti di OpenGL

• oggi, spetta allo sviluppatore dell’app

implementare negli shader questo o altri modelli – ancora molto utilizzato

• determina la terminologia standard di CG – non è physically based

• equazioni che “a naso” danno un risultato ragionevole

• no validazione, e neanche mantenimento energia!

• (eccetto che per la componente diffusiva, che abbiamo già visto)

• Oggi, persino i video-games, tendono ad adottare equazioni di rendering più physically based

– e di conseguenza descrizione dei materiali physically 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 1 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

(10)

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

I 3 addendi nel modello di Lighting di OpenGL

luce finale

= ambiente

+ riflessione

+ emissione

per ogni addendo, ho una componente R, G e B.

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

Componente emissione

• LEDs, lampadine...

• Non dipende dalle luci

– solo dall'oggetto

• E’ solo una componente additiva

– costante per R, G e B

• Modella solo luce che va da: emitter a: occhio

– Non: light-emitter oggetto occhio – Nota: non manda luce ad oggetti vicini – non e’ illuminazione globale

– per fare cio’, devo settare un’altra luce

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

I 3 addendi nel modello di Lighting di OpenGL

luce finale

= ambiente

+ riflessione

+ emissione

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

Componente ambiente

• Modella (ma in modo estremamente semplificato)

la luce che arriva

attraverso rifelssioni multiple – effetto globale

• Equivale all’assunzione:

"un pò di luce raggiunge ogni punto di ogni superficie"

– Per es. anche quelle in ombra

• Piccola costante additiva

– non dipende dalla normale della superficie

(11)

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

Componente ambiente

• prodotto fra:

– “ambient color” del materiale ( R M G M B M ) – colore della luce ( R L G L B L )

– (nb: prodotto componente per componente)

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

Componente ambiente

senza

con

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

I 3 addendi nel modello di Lighting di OpenGL

luce finale

= ambiente

+ riflessione

+ emissione

riflessione diffusa +

riflessione speculare

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

I 4 addendi nel modello di Lighting di OpenGL luce finale

= ambiente

+

riflessione diffusiva +

riflessione speculare +

emissione

(12)

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

Componente riflessione diffusa

• La luce che colpisce

una superficie Lambertiana si riflette in tutte

le direzioni (nella semisfera)

– nello stesso modo

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

Componente riflessione diffusa

• La luce che colpisce

una superficie Lambertiana si riflette in tutte

le direzioni (nella semisfera)

– nello stesso modo

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

Componente riflessione diffusa

• La luce che colpisce

una superficie Lambertiana si riflette in tutte

le direzioni (nella semisfera)

– nello stesso modo

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

Componente riflessione diffusa

• Dipende solo da:

– l'orientamento della superficie

• (la "normale")

– la direzione della luce

• del raggio incidente

(13)

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

Componente riflessione diffusa

• Dipende solo da:

– l'orientamento della superficie N

• (cioè la sua "normale") – la direzione della luce L

• (cioé del raggio incidente)

cos θ

= luce diff materiale diff

diff I k

I

R, G, B

(di solito bianco: 1,1,1) R, G, B (il "colore base" dell'oggetto)

moltiplicazione componente per componente

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

base color, o diffuse color, che fa parte del

"materiale"

Componente riflessione diffusa

• Dipende solo da:

– l'orientamento della superficie N

• (cioè la sua "normale") – la direzione della luce L

• (cioé del raggio incidente)

cos θ

= luce diff materiale diff

diff I k

I

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

Componente riflessione diffusa

• Dipende solo da:

– l'orientamento della superficie N

• (cioè la sua "normale") – la direzione della luce L

• (cioé del raggio incidente)

) L ˆ N ˆ ( ⋅

= I luce diff k materiale diff

cos θ

= luce diff materiale diff

diff I k

I

se angolo é compreso fra 0° e 90°, else: 0,

(oggetto in ombra di se stesso)

nota: ciascuno dei "puntini" in questa equazione rappresenta una operazione diversa!

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

Componente riflessione diffusa

L

N

componente diffusa piccola

⍬=70⁰

L

N

componente diffusa grande

⍬=35⁰

L N

componente diffusa massima

⍬=0⁰

(14)

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

Componente riflessione diffusa

L

N

componente diffusa ZERO ⍬=90⁰

L

N

componente diffusa ZERO ⍬>90⁰

(la superficie è nella propria stessa 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 1 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Componente riflessione diffusa

• Proprietà

– modello fedele delle BRDF

di alcuni materiali reali ☺ – ma non poi molti

– modello fisicamente coerente ☺

• per es, conserva l'energia – molto semplice da calcolare ☺

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

I 4 fattori che consideriamo luce finale

= ambiente

+

riflessione diffusa +

riflessione speculare +

emissione

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

Componente riflessione speculare

• Fenomeno molto semplice (concettualmente):

fotoni che “rimbalzano”

– come se fossero palline!

• NB: natura corpuscolare del fotone – il rimbalzo dipende dalla normale

della superficie

• in formula?

• Microscopicamente:

la normale delle “ microfacets ” si discosta poco da quella della superficie macroscopica

(meno se ne discosta, in media,

maggiormente speculare apparirà la sup)

(15)

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

Componente riflessione speculare

• "Specular" reflection

– detta anche «phong» reflection

• Per materiali lucidi

– con riflessi brillanti – ("highlights")

senza con

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

Componente riflessione speculare

• Idea base:

la luce non viene riflessa da materiali lucidi in maniera eguale in tutte le direzioni

• Riflessione view-dependent

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

Componente riflessione speculare

L: raggio incidente N: normale R: raggio riflesso V: dir. di vista

L N R

α V

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

Componente riflessione speculare

• Phong light model

– by Bui-Tuong Phong, 1975

cos α

= luce spec materiale spec

spec I k

I

(16)

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

Componente riflessione speculare

• Elevando il coseno ad una potenza >1, si ottengono riflessi piu' piccoli e brillanti

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

Componente riflessione speculare

• Phong light model

– by Bui-Tuong Phong, 1975

“shininess”

(quanto sono

intensi

i riflessi)

“glossiness”

(quanto sono

concentrati

i riflessi)

fanno parte del "materiale"

(descriz. delle caratteristiche dell'oggetto)

n α

spec materiale spec

luce

spec I k

I = ⋅ ⋅ cos

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

Componente riflessione speculare Effetto della “glossiness”

1

n = n = 5 n = 10 n = 100

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

Componente riflessione speculare

• Phong light model

– by Bui-Tuong Phong, 1975

n spec

materiale spec

luce k R V

I ⋅ ⋅ ( ⋅ ˆ ˆ )

=

n α

spec materiale spec

luce

spec I k

I = ⋅ ⋅ cos

direzione di luce riflessa.

Vedi esercizio della lez 10

(17)

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

Componente riflessione speculare variante di Blinn

• Blinn-Phong light model:

• semplificazione del Phong light model

• risultati simili, formula lievemente diversa

• Intuizione: V è (quasi) in direzione di R

N è (quasi) la media (rinormalizzata) fra sse V e L

• (e non devo neanche calcolarlo, R )

Jim Blinn

(pionere della CG)

L N R

V

“half-way” vector

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

Componente riflessione speculare

n spec

materiale spec

luce

spec I k R V

I = ⋅ ⋅ ( ⋅ ˆ ˆ )

phong:

blinn-phong: I spec = I luce speck materiale spec ⋅ ( H ˆ ⋅ N ˆ ) n

"half-way"

vector

L N R

V ˆ |

| ˆ ˆ ˆ ˆ

V L

V H L

+

= +

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

I 4 fattori che consideriamo luce finale

= ambiente

+

riflessione diffusa +

riflessione speculare +

emissione

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

Equazione di lighting “storica”

di OpenGL in totale

+

materiale ambient ambient

luce k

I

emission materiale

k

tot = I

propretà del materiale propretà della luce

V L

V L

ˆ ˆ

ˆ ) ( ˆ

+ +

+

n

spacular materiale spacular

luce k H N

I ( ˆ ˆ )

+

k ( L ˆ N ˆ )

I luce diffuse materiale diffuse

(18)

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

Materiali...

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

Modellazione delle luci

• Quanto vale la direzione L ?

– costante nella scena: fonti di luci "direzionali"

• modella fonti di luce molto distanti, e.g. il sole – varia nella scena: fonti di luci "posizionali"

• modella fonti di luci vicine, e.g. lampadine

Luci posizionali e direzionali

• Luce direzionale:

– la direzione L della luce è uno uniform

• Luce posizionale:

– la posizione della luce p è uno uniform – la direzione della luce viene compuata per

ogni punto di posizione x : ( L = normalize( p – 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 1 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a 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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Modellazione delle luci: luci posizionali

• Nelle luci posizionali, si può attenuare l'intensità in funzione della distanza

• In teoria (per la fisica) intensità = 1 / distanza 2

 

 

= 2

L

1

d

f attentuazi one luce c

(19)

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

Modellazione delle luci: luci posizionali

• In pratica, questo porta ad

attenuazioni della luce troppo repentine

• Spesso si usa un polinomio di sec grado:

con costanti arbitrarie

 

 

+ +

= 1 , 1

min 2

L 3 L 2

1 c d c d

f attentuazi one luce c

2 , 1 ,

c 0

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

Equazione di lighting

n spacular

materiale spacular

luce k H N

I ⋅ ⋅ ( ⋅ )

+

k ( L N )

I luce diffuse materiale diffuse +

materiale ambient ambient

luce k

I

emission materiale

k +

tot =

If attentuazi one luce

 

 

+ +

= 1 , 1

min 2

L 3 L 2

1 c d c d

f attentuazi one luce c

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

Equazione di Lighting storica di OpenGL

n spacular

materiale spacular

luce k H N

I ⋅ ⋅ ( ˆ ⋅ ˆ )

+

k ( L ˆ N ˆ )

I luce diffuse materiale diffuse +

materiale ambient ambient

luce k

I

emission materiale

k +

tot = I

caratteristiche della luce caratteristiche del materiale dati dalla scena

sommato per ogni luce

Caratteristiche del materiale

• Possono essere:

– specificate per oggetto materiale costante

• (allora saranno uniforms) – specificate per vertice

materiale disomogeneo

• (allora saranno varying )

– specificate nelle tessiture (per «texel») materiale ancora più disomogeneo

• (vedremo!) – casi misti

• (alcuni fattori per oggetto, altri per vertice, etc)

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

(20)

Circa il computo dei prodotti dot nel lighting

• Es: nelle componenti diffuse e specular

• Gli operandi devono essere vettori unitari

– (altrimenti, non si ottiene il coseno!)

– (se non lo sono: normalizzare prima dell’uso)

• I due operandi possono essere espressi in qualisasi spazio

– vista, oggetto, mondo …

• …purchè sia lo stesso per entrambi!!!

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

• Spazio vista?

– luce, def in spazio vista (luce ferma rispetto all’osserv) (es una head-light):

pronta!

– luce, def in spazio mondo (luce ferma rispetto alla scena):

va portata in spazio vista (con trasf. di View!) – normale

(definita in spazio oggetto):

va portata in spazio vista (trasf. di Model-View!)

– view direction (es. per calcolo di half-way vector) (0,0,-1) in spazio vista, se proiez ortogonale:

pronta!

Esempio: Calcoliamo il lighting in…

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

head light:

luce definita rispetto all’osservatore luce direzionale costante in spazio vista

Esempio: Calcoliamo il lighting in…

• Spazio mondo?

– luce def in spazio vista

(luce ferma rispetto all’osservatore) (es una head-light):

va portata in spazio mondo (con inversa di trasf. di View!) – luce def in spazio mondo

(luce ferma rispetto alla scena):

pronta!

– normale

(definita in spazio oggetto):

va portata in spazio mondo (trasf. di Modellazione!)

– view direction (es. per calcolo di half-way vector) (0,0,-1) in spazio vista, se proiez ortogonale:

va portata in spazio mondo (con inversa di trasf. di 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 1 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

head light:

luce definita rispetto all’osservatore luce direzionale costante in spazio vista

Esempio: Calcoliamo il lighting in…

• Spazio oggetto?

– luce def in spazio vista

(luce ferma rispetto all’osservatore) (es una head-light):

va portata in spazio oggetto (con inversa trasf. di Model-View!) – luce def in spazio mondo

(luce ferma rispetto alla scena):

va portata in spazio oggetto (con inversa trasf. di Model!) – normale

(definita in spazio oggetto):

pronta!

– view direction (es. per calcolo di half-way vector) (0,0,-1) in spazio vista, se proiez ortogonale:

va portata in spazio oggetto (con inversa trasf. di Model-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 1 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

head light:

luce definita rispetto

all’osservatore

luce direzionale

costante in spazio vista

(21)

Come si trasformano punti e vettori (ripasso 1/1)

• Se una superficie S viene trasformata con una matrice affine 4x4

– punto = 1

su S:

diventa ′ = 1

=

′ 1

– vettore = 0

tangente a S, (oppure ottenuto per diff. di punti su S)

diventa ′ = 0

=

′ 0

M a r c o T a r i n i ‧ C o m p u t e r 0G r a p h i c s ‧ 2 0 1 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

con e in coord omogenee

Come si trasformano punti e vettori (ripasso 2/2)

• Se una superficie S viene trasformata con una matrice affine 4x4

– punto = su S:

diventa = +

– vettore = tangente a S, (oppure ottenuto per diff. di punti su S)

diventa ′ =

M a r c o T a r i n i ‧ C o m p u t e r 0G r a p h i c s ‧ 2 0 1 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

=

0 0 0 1

conta solo la sottomatr 3x3 non conta

con e in coord cartesiane

Come si trasformano vettori unitari

(come sono le normali)

• Se il la trasf M non è una isometria (M non mantinene le distanze) (M non è una rototraslazione)

• Allora dopo la trasformazione di un vettore unitario

devo rinormalizzare il risultato!

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

Come si trasformano vett. ortogonali ad una sup

(come sono le normali)

• Se i vettori tangenti vengono trasforamti con con una matrice 3x3

→ = ∙

• come trasformo i vettori ortogonali ad essi per lasciarli tali?

→ = ?

• se prima della trasf: e ortogonali (dot = 0) :

∙ = 0

• allora dopo la trasf: ′ e ′ devono essere ancora ortogonali

∙ = 0

• soluz: pongo = ∙ (cioè = ∙ )

• infatti:

∙ = ∙ ∙ ∙ = ∙ = 0

M a r c o T a r i n i ‧ C o m p u t e r 0G r a p h i c s ‧ 2 0 1 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a con e in coord cartesiane

(22)

Trasformazione delle normali

(vettori ortogonali e unitari )

• Totale:

– se per trasformare i punti di un modello uso

=

0 0 0 1

– allora per trasformare le normali uso (l’inversa della trasposta di ,

o la trasposta dell’inversa di , che è lo stesso) – e in più, se non è rigida (una rototraslazione),

rinormalizzo dopo la moltiplic

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

Trasformazione delle normali

(vettori ortogonali e unitari )

• Esempio in 2D

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

Trasformazione delle normali

• Casi particolari

– Se la matr. di trasf M è...

1. una traslazione...

2. una rotazione...

3. una scalatura uniforme...

4. una combinazione di queste (è il caso tipico!)...

Sol uz.

: Le 1.

nor mal i, co me tut tii vetto ri, sono una ffe

cted vam ale orm . N di M rsa inve = i M ad spost Tra 2.

olti pl.

per M

.per pl. olti (m ta scala be reb and ale orm M. N = i M ad spost Tra 3.

un osca lar e),

ma . tto ffe ne alcu ha on òn M. eci sare zion au ast alizza , b orm e 3 rin 2 olao1 Datdop 4.

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

Prossimamente: shading

Fr am m en ti & at tri bu ti in te rp ol at i Ve rti ci & lo ro a ttr ib ut i

Screen buffer Ve rti ci p or ie tta ti & at tri bu ti co m pu ta ti

rasterizer triangoli

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

segmenti rasterizer punti

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

lighting: DOVE? (e: con quale normale?)

x y

z

v

0

v

1

v

2

v

0

v

1

v

2

Riferimenti

Documenti correlati

(Punti 5) Si vuole stimare l’et`a media µ di una popolazione di pazienti affetti da una

[r]

va portata in spazio oggetto (con inversa trasf. per calcolo di half-way vector) (0,0,-1) in spazio vista, se proiez ortogonale:. va portata in spazio oggetto (con inversa trasf. di

Qual’e’ il significato geometrico di

[r]

Algebra e matematica

[r]

• Indizio di profondità basato sulla conoscenza a priori del posizionamento delle luci e delle forme degli oggetti nel mondo 3D, e di come queste si proiettano in una