Sistemi Multimediali II
Lezione 10:
Università dell’Insubria
Facoltà di Scienze MFN di Varese
Corso di Laurea in Informatica
Anno Accademico 2004/05
Marco Tarini
la L di T&L
Lighting
•
•
L’altra metà del rendering
Determinare la luce
– quanta luce
– di che colore
che arriva
– da un punto della scena
– all’occhio
•
Problema complesso...
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 2/40
Lighting: alcuni fattori
ALTRA LUCE
assorbimento
in
ombra
LUCE
trasmissione (con rifrazione)
riflessione interna
rifelssione
OCCHIO
assorbimento
da parte del mezzo
(e.g. nebbia)
scattering sotto
la superficie
OGGETTO
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 3/40
Lighting: alcuni fattori
riflessioni multiple
(illuminazione indiretta)
LUCE
OCCHIO
OGGETTO
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 4/40
Lighting: globale VS locale
Illuminazione locale
– tiene conto solo di:
• condizioni di luce
– N. luci
– loro pos
– loro colore
• pezzetto della superficie
da illuminare
– orientamento (normale)
– caratteristiche ottiche
» per es, colore
– il resto del mondo non c’è
Illuminzione globale
– riflessioni multiple
– ombre
– scattering
sottosuperficiale
– rifrazione
– ...
torna molto più
facile da fare
con il nostro
Hardware
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 5/40
Lighting locale
LUCE
rifelssione
OGGETTO
OCCHIO
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 6/40
Cosa è facile fare
• Illuminazione locale:
– riflessioni della luce su oggetti
• con proprietà ottiche molto semplici
– con multiple fonti di luci
• ma molto semplici: puntiformi
• Illuminazione globale:
– riflessioni multiple
• in maniera BRUTALMENTE approssimata
– assorbimento da parte del mezzo
• assunzioni semplificanti (nebbia uniforme)
– tutto il resto solo "a fatica"
• escogitando algoritmi ad-hoc che si adattano al nostro l'HW
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 7/40
I 3 fattori che consideriamo
per ogni addendo,
ho una componente R, G e B.
luce finale
=
ambiente
+
riflessione
+
emissione
definite sia per l'oggetto,
(sotto forma di attributi per vertice)
sia per ogni luce che uso
le proprieta ottiche dell'oggetto,
(di solito sono attributi per vertice)
nel loro insieme sono dette
il suo "materiale"
terminologia OpenGL
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 8/40
Componente emissione
• LEDs, lampadine...
• Non dipende dalle luci
– solo dall'oggetto
• E’ solo una componente additiva
– costante per R, G e B
• Nota: non manda mica luce ad oggetti vicini
– non e’ illuminazione globale
– per fare cio’, devo settare una altra luce
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 9/40
I 3 fattori che consideriamo
luce finale
=
ambiente
+
riflessione
+
emissione
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 10/40
Componente ambiente
• Modella (grossolanamete)
la luce che arriva
attraverso rifelssioni multiple
• Assunzione:
"un po di luce arriva da tutte le direzioni
in ogni superficie"
– anche quelle in ombra
• Piccola costante additiva
– non dipende dalla normale della superficie
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 11/40
Componente ambiente
• prodotto fra:
– colore “ambient” del materiale ( RM GM BM)
– colore “ambient” della luce ( RL GL BL)
• Nota: possono essere colori RGB diversi
– prodotto componente per componente
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 12/40
Componente ambiente
• Modella (grossolanamete)
la luce che arriva da tutte le direzioni
attraverso rifelssioni multiple
senza
con
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 13/40
I 3 fattori che consideriamo
luce finale
=
ambiente
+
riflessione
+
emissione
solo
componente
ambient
riflessione diffusa
+
riflessione speculare
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 14/40
I 4 fattori che consideriamo
luce finale
=
ambiente
+
riflessione diffusa
+
riflessione speculare
+
emissione
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 15/40
Componente riflessione diffusa
• Esibita nella realtà da (per es):
– gesso
– legno (quasi)
– materiali molto opachi (non lucidi)
• Detta anche
– diffuse reflection
– Lambertian reflection
Johann
Heinrich
Lambert
1728 - 1777
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 16/40
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 ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 17/40
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 ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 18/40
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 ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 19/40
Componente riflessione diffusa
• Dipende solo da:
– l'orientamento della superficie
• (la "normale")
– la direzione della luce
• del raggio incidente
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 20/40
Componente riflessione diffusa
• Dipende solo da:
– l'orientamento della superficie N
• (cioè la sua "normale")
– la direzione della luce L
• (cioé del raggio incidente)
I diff I luce diff k materialediff cos
R, G, B
(di solito bianco: 1,1,1)
R, G, B
(il "colore" dell'oggetto)
moltiplicazione componente per componente
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 21/40
Componente riflessione diffusa
• Dipende solo da:
– l'orientamento della superficie N
• (cioè la sua "normale")
– la direzione della luce L
• (cioé del raggio incidente)
I diff I luce diff k materialediff cos
fa parte del
"materiale"
(caratteristica
dell'oggetto)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 22/40
Componente riflessione diffusa
• Dipende solo da:
– l'orientamento della superficie N
• (cioè la sua "normale")
– la direzione della luce L
• (cioé del raggio incidente)
I diff I luce diff k materialediff cos
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 23/40
Componente riflessione diffusa
• Dipende solo da:
– l'orientamento della superficie N
• (cioè la sua "normale")
– la direzione della luce L
• (cioé del raggio incidente)
angolo compreso fra 0⁰ e 90⁰,
senno fa 0,
(oggetto in ombra di se stesso)
I diff I luce diff k materialediff cos
I luce diff kmaterialediff (N̂ L̂)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 24/40
Componente riflessione diffusa
L
L
L
N
componente
diffusa
piccola
⍬=70⁰
N
componente
diffusa
grande
⍬=35⁰
N
componente
diffusa
massima
⍬=0⁰
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 25/40
Componente riflessione diffusa
L
L
N
componente
diffusa
ZERO
⍬=90⁰
N
componente
diffusa
ZERO
⍬>90⁰
(la superficie
è nella propria stessa
ombra)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 26/40
Componente riflessione diffusa
• Proprietà
– modello fedele
delle caratteristiche ottiche
di alcuni materiali reali
– ma di pochi materiali
– modello fisicamente coerente
• per es, conserva l'energia
– molto semplice da calcolare
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 27/40
I 4 fattori che consideriamo
luce finale
=
ambiente
+
riflessione diffusa
+
riflessione speculare
+
emissione
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 28/40
Componente riflessione speculare
• "Specular" reflection
• Per materiali lucidi
– con riflessi brillanti
– ("highlights")
senza
con
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 29/40
Componente riflessione speculare
• Idea base:
la luce non viene riflessa
da materiali lucidi
in maniera eguale
in tutte le direzioni
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 30/40
Componente riflessione speculare
L: raggio incidente
N: normale
R: raggio riflesso
V: dir. di vista
L
in 3D
N
R
V
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 31/40
Componente riflessione speculare
• Phong light model
– by Bui-Tuong Phong, 1975
I spec I luce spec k materialespec cos
in 3D
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 32/40
Componente riflessione speculare
• Elevando il coseno ad una potenza,
si ottengono riflessi piu' piccoli e brillanti
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 33/40
Componente riflessione speculare
• Phong light model
– by Bui-Tuong Phong, 1975
I spec I luce spec k materialespec cos
in 3D
I spec I luce spec kmaterialespec cos
n
fanno parte del "materiale"
(caratteristiche dell'oggetto)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 34/40
Componente riflessione speculare
• Phong light model
– by Bui-Tuong Phong, 1975
I spec I luce spec k materialespec cos
in 3D
I spec I luce spec kmaterialespec cos
n
n
ˆ
ˆ
I luce spec kmaterialespec ( R V )
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 35/40
Componente riflessione speculare
n 1
n5
n 10
n 100
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 36/40
Componente riflessione speculare
• Blinn-Phong light model:
• semplificazione del Phong light model
• risultati simili, formula diversa:
phong:
blinn-phong:
n
ˆ
ˆ
I spec I luce spec kmaterialespec ( R V )
n
ˆ
ˆ
I
I
k
(H N )
spec
luce spec
materialespec
"half-way" vector
L
N
H = L + V / |L+V|
R
V
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 37/40
Componente riflessione speculare
• Blinn-Phong light model:
• semplificazione del Phong light model
• risultati simili, formula diversa:
phong:
blinn-phong:
n
ˆ
ˆ
I spec I luce spec kmaterialespec ( R V )
n
ˆ
ˆ
I
I
k
(H N )
spec
luce spec
materialespec
Jim Blinn
(MEGA-MEGA-GURU)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 38/40
I 4 fattori che consideriamo
luce finale
=
ambiente
+
riflessione diffusa
+
riflessione speculare
+
emissione
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 39/40
Equazione di lighting in totale
I tot I luce ambient k materialeambient
I luce diffuse k materialediffuse ( L N )
I luce spacular kmaterialespacular ( H N )
n
k materialeemission
propretà del materiale
propretà della luce
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 40/40
Materiali...
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 41/40
Equazione di lighting:
modellazione delle luci
I tot I luce ambient k materialeambient
I
k
( Lˆ Nˆ )
luce diffuse
materialediffuse
n
ˆ
ˆ
I luce spacular kmaterialespacular ( H N )
k materialeemission
( Lˆ Vˆ )
Lˆ Vˆ
propretà della luce
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 42/40
Modellazione delle luci
• Come varia L?
– costante nella scena: fonti di luci "direzionali"
• buono per fonti di luce molto distanti, e.g. il sole
– varia nella scena: fonti di luci "posizionali"
• buono per fonti di luci vicine, e.g. lampadine
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 43/40
Modellazione delle luci: luci posizionali
• Nelle luci posizionali,
si può attenuare l'intensità
in funzione della distanza
• In teoria (per la fisica)
intensità = 1 / distanza2
1
f attentuazione luce
2
c dL
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 44/40
Modellazione delle luci: luci posizionali
• In pratica, questo porta ad
attenuazioni della luce troppo repentine
• Invece usiamo:
1
f attentuazione luce min
, 1
2
c1 c2 d L c3d L
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 45/40
Equazione di lighting
I luce ambient k materialeambient
I tot
I luce diffuse k materialediffuse ( L N )
f attentuazione luce
I luce spacular kmaterialespacular ( L H ) n
k materialeemission
1
f attentuazione luce min
, 1
2
c1 c2 d L c3d L
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 46/40
Tipi di luci
• Tipi di luci:
– posizionali
– direzionali
– spot-lights
• (faretti)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 47/40
Spotlights
• Definite da tre parametri:
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 48/40
Equazione di lighting
I luce ambient k materialeambient
I tot
I luce diffuse k materialediffuse ( L N )
I luce spacular kmaterialespacular ( L H ) n
f attentuazione luce
f effettospotlight
k materialeemission
1
f attentuazione luce min
, 1
2
c1 c2 d L c3d L
f effettospotlight f L, spot direction, spot cutoff Angle, spot beam width
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 49/40
Prossimamente:
rasterizer
punti
setup
rasterizer
triangoli
setup
rasterizer
segmenti
computazioni
per frammento
setup
Frammenti
& attributi
interpolati
Vertici poriettati
& attributi
computati
Vertici
computazioni
per vertice
& loro attributi
lighting: DOVE?
Screen
buffer
y
v1
v0
x
v2
v1
v0
z
v2
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ 2 0 0 4 / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 50/40