• Non ci sono risultati.

Modelli (o equazioni) di lighting

N/A
N/A
Protected

Academic year: 2021

Condividi "Modelli (o equazioni) di lighting"

Copied!
23
0
0

Testo completo

(1)

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 6 / 1 7 ‧ 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

(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 6 / 1 7 ‧ 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.

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

(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 6 / 1 7 ‧ 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

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

(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 6 / 1 7 ‧ 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)

Componente ambiente

senza

con

(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 6 / 1 7 ‧ 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

I 4 addendi nel modello di Lighting di OpenGL luce finale

= ambiente

+

riflessione diffusiva +

riflessione speculare +

emissione

(6)

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 6 / 1 7 ‧ 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

Componente riflessione diffusa

• La luce che colpisce

una superficie Lambertiana si riflette in tutte

le direzioni

(nella semisfera)

– nello stesso modo

(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 6 / 1 7 ‧ 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

Componente riflessione diffusa

• Dipende solo da:

– l'orientamento della superficie

• (la "normale")

– la direzione della luce

• del raggio incidente

(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 6 / 1 7 ‧ 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

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

(9)

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 6 / 1 7 ‧ 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!

Componente riflessione diffusa

L

N

componente diffusa piccola

⍬=70⁰

L

N

componente diffusa grande

⍬=35⁰

L N

componente diffusa massima

⍬=0⁰

(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 6 / 1 7 ‧ 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)

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 

(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 6 / 1 7 ‧ 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

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)

(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 6 / 1 7 ‧ 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

Componente riflessione speculare

• Idea base:

la luce non viene riflessa da materiali lucidi

in maniera eguale in tutte le direzioni

• Riflessione

view-dependent

(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 6 / 1 7 ‧ 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

Componente riflessione speculare

• Phong light model

– by Bui-Tuong Phong, 1975

 cos

luce spec materiale spec

spec I k

I

(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 6 / 1 7 ‧ 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

Componente riflessione speculare

• Phong light model

– by Bui-Tuong Phong, 1975

“shininess”

(quanto sono intensi i riflessi)

“glossiness”

(quanto sono concentrati i riflessi)

n spec

materiale spec

luce

spec I k

I    cos

(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 6 / 1 7 ‧ 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

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

(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 6 / 1 7 ‧ 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

Componente riflessione speculare

n spec

materiale spec

luce

spec I k R V

I    ( ˆ  ˆ )

phong:

blinn-phong: I spec  I luce spec  k materiale spec  ( H ˆ  N ˆ ) n

"half-way"

vector

L N R

V ˆ |

| ˆ ˆ ˆ ˆ

V L

V H L

 

(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 6 / 1 7 ‧ 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

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

ˆ ˆ

ˆ ) ( ˆ

materiale spacular n

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

Materiali...

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

(19)

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 6 / 1 7 ‧ 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

(20)

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 6 / 1 7 ‧ 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

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 

I  f attentuazi one luce

 

 

  1 , 1

min 2

L 3 L 2

1 c d c d

f attentuazi one luce c

(21)

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 6 / 1 7 ‧ 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)

(22)

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 6 / 1 7 ‧ 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…

head light:

luce definita rispetto

all’osservatore

luce direzionale 

costante in spazio vista

(23)

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 6 / 1 7 ‧ 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!) head light:

luce definita rispetto

all’osservatore

luce direzionale 

costante in spazio vista

Riferimenti

Documenti correlati

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

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

Qual’e’ il significato geometrico di

[r]

Algebra e matematica

[r]

Si disegni nella stessa figura (in due subplot) il grafico della seguente superficie e delle sue curve di livello:3. f (x, y)

GEOMETRIA ANALITICA.