Översikt
En introduktion
till bildsyntes
Gustav Taxén
Bildsyntes
(Virtuell)
Ljusenergi
(Virtuell)
Ljusenergi
Kameramodell,
Tone mapping,
Rastrering
Reflektionsmodell
Centrum för
användarorienterad
IT-design
[email protected]
Bildelement / RGB-värden,
Volt för elektronkanoner
Ljusenergi
Grafikkort,
skärm
http://www.lightscape.com
Bildsyntesens
huvudmålsättning
Ljusmodeller
Synligt ljus är elektromagnetisk strålning inom
våglängderna 380-780 nanometer.
Man kan beskriva ljus på kvantnivå, som vågor
(Maxwells ekvationer) eller som geometrisk
optik (ljus färdas längs med räta linjer i
genomskinliga material).
Fotografi?
Renderad bild?
http://www.lightscape.com/
Ljusspektra
Diagram som visar energiflöde genom en viss
sensor som funktion av våglängd.
Man brukar använda geometrisk optik i
bildsyntes. Ofta förutsätter man också att
det är vakuum mellan modellerna i scenen.
Simulerat ljusspektra till
datorskärm?
Ett riktigt ljusspektra innehåller oändligt med
våglängder. Hur visar vi det på en datorskärm?
Energi
L(λ)
Energi
L(λ)
Våglängd
380
780
Våra ögon tar emot ljusspektra och skapar synintryck.
380
λ0
λ1
λ2
λ3
λ4
Våglängd
780
Ett sätt är att sampla spektrat.
En tumregel säger att 25-40 samplingar räcker.
1
Simulerat ljusspektra till
datorskärm?
Man kan också använda ett antal basfunktioner:
L (λ ) ≈ c0ϕ 0 (λ ) + c1ϕ1 ( λ ) + ... + cnϕ n (λ )
Översikt
Bildsyntes
(Virtuell)
Ljusenergi
(Virtuell)
Ljusenergi
Reflektionsmodell
Här är ϕ-funktionerna valda på förhand och
konstanterna c0, ... ,cn är de man arbetar med.
Kameramodell,
Tone mapping,
Rastrering
Bildelement / RGB-värden,
Volt för elektronkanoner
Man kan visa att c:a 5 termer ger bra resultat,
om man har valt bra basfunktioner.
Ljusenergi
Grafikkort,
skärm
Linear Color Representations for Full Spectral Rendering
M. S. Peercy, SIGGRAPH 1993.
Ljusets interaktion med
material
Ljusets interaktion med
material
Absorption, reflektion, transmission, spridning.
Reflekterat ljus ≤ Anländande ljus
Perfekt reflektion:
Matt reflektion
Absorption
Samma mängd ljus reflekteras i alla riktingar
N
En del av det ljus som anländer till ytan
övergår i värme.
(Ex: svart eller vit T-shirt i sommarsolen...)
2
Perfekt reflektion:
Spegelreflektion
Perfekt transmission:
Descartes/Snells lag
Allt ljus reflekteras i spegelriktingen
N
θi
N
θ
n1
θ
n2
θo
n1 sin θ i = n2 sin θ o
Spridning
Riktiga material
N
Ljus sprids och studsar på små
partiklar inne i materialet.
Reflektionsdata
Mätning
A Practical Model for Subsurface Light Transport
Wann Jensen m.fl., SIGGRAPH 2001.
Mätning
Matematisk modell
http://math.nist.gov/~FHunt/brdf/
3
Matematisk modell:
Phongreflektion
”Ickerealistiska”
reflektionsmodeller
Reflekterat
Allmän= ljus +
ljus i riktn. V
+
Färg hos
∑ ljuskälla
i
⋅ (kd ⋅ (N • Li) + ks ⋅ (V • Ri) α)
i
Ri
V
N
θ
θ
Li
A Non-Photorealistic Lighting Model for Automatic Technical Illustration
Gooch, Gooch, Shirley & Cohen, SIGGRAPH 2000
”Ickerealistiska”
reflektionsmodeller
Art-Based Rendering of Fur, Grass, and Trees
Kowalski m.fl., SIGGRAPH 1999
Lokala belysningsmodeller
Tag endast hänsyn till
materialegenskaper och
egenskaper hos ljuskällan.
”Ickerealistiska”
reflektionsmodeller
Real-Time Hatching
Praun, Hoppe, Webb, Finkelstein, SIGGRAPH 2001
Globala belysningsmodeller
Tag också hänsyn till ljusets
interaktion med övriga
modeller i scenen:
skuggor och (eventuellt) indirekt ljus
4
Reciprocitet
θut
Vi betraktar en punkt på en
yta. Hur mycket ljus anländer
till punkten?
N
N
θin
θut
Exempel: Klassisk ray
tracing (strålföljning)
θin
Man kan visa att ljusreflektion uppfyller reciprocitet:
R(θin→θut) = R(θut→θin)
D.v.s. det spelar ingen roll åt vilket håll vi följer ljusstrålar!
Exempel: Klassisk ray
tracing (strålföljning)
Problem:
Oändligt många strålar att följa!
Många strålar når aldrig kameran!
Klassisk ray tracing
En lösning:
Välj strålar som anländer
direkt från ljuskällan och
via perfekt spegelriktning!
Skuggstråle
Skuggstråle
Reflekterat
ljus
Reflekterat
ljus
An Improved Illumination Model for Shaded Display
Turner Whitted, Communications of the ACM, Juni 1980.
Indirekt ljus
Klassisk ray tracing vs.
indirekt ljus
Många relevanta ljusstrålar
ignoreras i klassisk
ray tracing.
5
Klassisk ray tracing vs.
indirekt ljus
Radiosity-metoden
http://www.lightscape.com
Etc.
Radiosity-metoden
Ljusspridning (scattering)
Algoritmer som tillåter icke-vakuum
mellan föremål i scenen
S. Y. Lee & F. K. Musgrave,
http://www.lightscape.com
http://www.wizardnet.com/musgrave/clouds.html
Rayleighspridning
Översikt
Bildsyntes
(Virtuell)
Ljusenergi
(Virtuell)
Ljusenergi
Reflektionsmodell
Kameramodell,
Tone mapping,
Rastrering
Bildelement / RGB-värden,
Volt för elektronkanoner
Ljusenergi
Display of The Earth Taking
into Account Atmospheric Scattering
Nishita m.fl., SIGGRAPH 1993.
Grafikkort,
skärm
6
Avbildningar
Hårnålskameran
New Principles of Linear Perspective
Brook Taylor, 1719.
Hårnålskameran i datorn
Projektioner
Perspektiv
Bildplan
(image plane)
Andra avbildningar
Parallell
Environment mapping
”Komplex” omgivning
Arnolfiniporträttet
Jan van Eyck, 1434.
Steg 1: Lagra det ljus som anländer till
en sfär från alla riktningar.
Steg 2: Hitta en reflektionsriktning
och hämts det lagrade
ljuset i den riktningen.
7
Environment mapping
Environment mapping
Rendering with Natural Light
Paul Debevec m.fl., 1998.
Interface
Lance Williams m.fl., 1985.
Trichromacy
(tristimulusteori)
Styrning
Godtyckligt
spektra
Fiat Lux
Paul Debevec m.fl., 1999.
Visuell matchning
Färgmatchningsfunktioner
Metamers (metamerer)
780
X = k ∫ V ( λ ) x ( λ )dλ
1,4
1,2
x
y
1
0,8
0,6
z
0,4
0,2
Det innebär att flera spektra ger upphov
till samma färgintryck.
810
785
760
735
710
685
660
635
610
585
560
535
510
485
460
435
0
410
780
Z = k ∫ V (λ ) z ( λ )dλ
1,6
385
380
Färgmatchningsfunktioner
780
Y = k ∫ V ( λ ) y ( λ )dλ
Tre värden räcker för att beskriva
ett godtyckligt spektra m.a.p. färg.
1,8
360
380
CIE 1931
2
Våglängd
380
Sådana spektra kallas metamerer.
Y är luminans = ljusintensitet.
8
Chromaticity
Färggamut
Antag att vi har tre
monitorfosforer och
plottar deras positioner
i chromaticitydiagrammet.
x = X /( X + Y + Z )
y = Y /( X + Y + Z )
z = Z /( X + Y + Z )
x + y + z =1
Projicera ned på planet y = 0:
Ger diagram där luminansen i färgen tagits bort.
Färgoptimering
Ofta vill man visa
en färg som ligger
utanför gamuten.
Det finns många
strategier för att
välja det ”närmaste”
värdet inom gamuten.
Tone Mapping Operators
De färger som de
tillsammans kan visa
ligger då inom
triangeln mellan
positionerna.
Ljusstyrkeintervaller
Våra ögon kan enkelt hantera miljöer där
de mest ljusa partierna är 10000 gånger starkare
än de svagaste partierna.
Men förhållandet mellan det svagaste och det starkaste ljus
en datorskärm kan skicka ut är bara 100:1.
Hur kan vi ”komprimera” ett 10000:1-intervall
till ett 100:1-intervall?
Linjär operator
Verklig scen
Samma
synintryck
Datorskärm
Tone operator
Virtuell scen
Välj ett maxvärde m. Dividera
alla ljusvärden med m.
Om resultatet är >1, sätt till 1.
9
Visuella operatorer
Wards operator
1
Y'=Y
Yd
 1.219 + (Yd / 2) 0.4 


0.4
 1.219 + Ywa

2.5
Yd är den maximala luminans som monitorn kan avge.
Man antar också att ögonen hos en tänkt observatör av
scenen har anpassat sig till luminansen Ywa.
Icke-linjära operatorer baserade på
perceptionspsykologi.
(Greg Ward, ”A Contrast-Based Scalefactor for
Luminance Display”, I Paul Heckbert [red.],
Graphics Gems IV.)
Resultat
Översikt
Bildsyntes
(Virtuell)
Ljusenergi
(Virtuell)
Ljusenergi
Reflektionsmodell
Medelluminans
Kameramodell,
Tone mapping,
Rastrering
Bildelement / RGB-värden,
Volt för elektronkanoner
Ljusenergi
Grafikkort,
skärm
Wards operator
XYZ till RGB
Vet vi monitorfosforernas X-, Y-, och Z-värden
kan vi lösa ett enkelt linjärt ekvationssystem
för att få motsvarande R-, G- och B-värden.
Respons hos monitorfosforer
För vanliga datormonitorer gäller
Luminans (Y)
Y ≈ Vγ
Om man inte vet värdena för sin monitor kan
man använda ”standardvärden”
(men oftast finns de i monitorns manual).
Standardkonvertering för HDTV:
− .537150 − 0.498535  X 
 R   3.240479
 
  
0.041556  Y 
 G  =  − 0.969256 1.875992
 B   0.055648 − 0.204043 1.057311  Z 
 
  
Spänning (V)
Istället för att skicka V
skickar vi V(1/γ). Detta kallas
för gammakorrektion.
Typiska värden på γ är 2.8±0.3.
Om man är noggran ska man
kompensera för ljuset i den
miljö i vilken monitorn finns.
10