Computer Graphics
Lezione 10:
Università dell’Insubria
Facoltà di Scienze MFN di Varese
Corso di Laurea in Informatica
Anno Accademico 2006/07
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...
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Lighting: alcuni fattori
ALTRA LUCE
assorbimento
in
ombra
LUCE
trasmissione (con rifrazione)
riflessione interna
riflessione
OCCHIO
assorbimento
da parte del mezzo
(e.g. nebbia)
scattering sotto
la superficie
OGGETTO
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Lighting: alcuni fattori
riflessioni multiple
(illuminazione indiretta)
LUCE
OCCHIO
OGGETTO
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Lighting locale
LUCE
rifelssione
OGGETTO
OCCHIO
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
I 3 addendi nel modello di Lighting di OpenGL
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
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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 luce ad oggetti vicini
– non e’ illuminazione globale
– per fare cio’, devo aggiungere una altra luce
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
I 3 addendi nel modello di Lighting di OpenGL
luce finale
=
ambiente
+
riflessione
+
emissione
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente ambiente
• Modella (grossolanamete)
la luce che arriva
attraverso rifelssioni multiple
• Assunzione:
"un pò di luce raggiunge da tutte le direzioni
ogni superficie"
– anche quelle in ombra
• Piccola costante additiva
– non dipende dalla normale della superficie
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente ambiente
• Modella (grossolanamete)
la luce che arriva da tutte le direzioni
attraverso rifelssioni multiple
senza
con
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
I 3 addendi nel modello di Lighting di OpenGL
luce finale
=
ambiente
+
riflessione
+
emissione
solo
componente
ambient
riflessione diffusa
+
riflessione speculare
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
I 4 addendi nel modello di Lighting di OpenGL
luce finale
=
ambiente
+
riflessione diffusa
+
riflessione speculare
+
emissione
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione diffusa
• Esibita nella realtà da (per es):
– gesso
– legno (quasi)
– materiali molto opachi (nel senso di "non lucidi")
• Detta anche
– diffuse reflection
– Lambertian reflection
Johann
Heinrich
Lambert
1728 - 1777
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione diffusa
• La luce che colpisce
una superficie Lambertiana
si riflette in tutte
le direzioni
(nella semisfera)
– nello stesso modo
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione diffusa
• La luce che colpisce
una superficie Lambertiana
si riflette in tutte
le direzioni
(nella semisfera)
– nello stesso modo
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione diffusa
• La luce che colpisce
una superficie Lambertiana
si riflette in tutte
le direzioni
(nella semisfera)
– nello stesso modo
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione diffusa
• Dipende solo da:
– l'orientamento della superficie
• (la "normale")
– la direzione della luce
• del raggio incidente
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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
(spesso, bianco: 1,1,1)
R, G, B
(il "colore" dell'oggetto)
moltiplicazione componente per componente
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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)
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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 
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione diffusa
• Dipende solo da:
– l'orientamento della superficie N
• (cioè la sua "normale")
– la direzione della luce L
• (cioé del raggio incidente)
se angolo é compreso fra 0⁰ e 90⁰,
else: 0,
(oggetto in ombra di se stesso)
I diff  I luce diff  k materialediff  cos 
 I luce diff  kmaterialediff  (N̂  L̂)
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione diffusa
L
L
L
N
componente
diffusa
piccola
⍬=70⁰
N
componente
diffusa
grande
⍬=35⁰
N
componente
diffusa
massima
⍬=0⁰
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione diffusa
L
L
N
componente
diffusa
ZERO
⍬=90⁰
N
componente
diffusa
ZERO
⍬>90⁰
(la superficie
è nella propria stessa
ombra)
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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 
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
I 4 fattori che consideriamo
luce finale
=
ambiente
+
riflessione diffusa
+
riflessione speculare
+
emissione
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione speculare
• "Specular" reflection
• Per materiali lucidi
– con riflessi brillanti
– ("highlights")
senza
con
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione speculare
• Idea base:
la luce non viene riflessa
da materiali lucidi
in maniera eguale
in tutte le direzioni
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione speculare
L: raggio incidente
N: normale
R: raggio riflesso
V: dir. di vista
L
in 3D
N
 
R

V
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione speculare
• Phong light model
– by Bui-Tuong Phong, 1975
I spec  I luce spec  k materialespec  cos 
in 3D
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione speculare
• Elevando il coseno ad una potenza,
si ottengono riflessi piu' piccoli e brillanti
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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)
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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 )
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Componente riflessione speculare

n 1
n5
n  10
n  100
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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)
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
I 4 fattori che consideriamo
luce finale
=
ambiente
+
riflessione diffusa
+
riflessione speculare
+
emissione
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Materiali...
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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 
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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 
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Equazione di lighting
I luce ambient  k materialeambient 
I tot 
I luce diffuse  k materialediffuse  ( L  N ) 
 f attentuazione luce
I luce spacular  kmaterialespacular  ( H  N ) n
 k materialeemission


1
f attentuazione luce  min 
, 1
2
 c1  c2 d L  c3d L 
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Tipi di luci
• Tipi di luci:
– posizionali
– direzionali
– spot-lights
• (faretti)
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Spotlights
• Definite da tre parametri:
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Equazione di Lighting
di OpenGL (completa)
I luce ambient  k materialeambient 
I tot 
I luce diffuse  kmaterialediffuse  ( Lˆ  Nˆ ) 
n
ˆ
ˆ
I luce spacular  kmaterialespacular  ( H  N )
caratteristiche della luce
caratteristiche del materiale
dati dalla scena
 f attenuazione 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 
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
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
Marco Tarini ‧ Computer GraphIcs ‧ 2006/07 ‧ Università dell’Insubria
Scarica

ppt