Ö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