Översikt En introduktion till bildsyntes Gustav Taxén Centrum för användarorienterad IT-design gustavt@nada.kth.se Reflektionsmodell Bildsyntes Kameramodell, Tone mapping, Rastrering Bildelement / RGB-värden, Volt för elektronkanoner http://www.lightscape.com Grafikkort, skärm 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? http://www.lightscape.com/ Renderad bild? Man brukar använda geometrisk optik i bildsyntes. Ofta förutsätter man också att det är vakuum mellan modellerna i scenen. Ljusspektra Diagram som visar energiflöde genom en viss sensor som funktion av våglängd. Energi L( 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( Våglängd 380 780 Våra ögon tar emot ljusspektra och skapar synintryck. Våglängd λ 0 λ 1 λ 2 λ 3 λ 4 380 780 Ett sätt är att sampla spektrat. En tumregel säger att 25-40 samplingar räcker. 1
Simulerat ljusspektra till datorskärm? Översikt Bildsyntes Man kan också använda ett antal basfunktioner: L ( c0ϕ 0( + c1ϕ 1( +... + c n ϕn( Här är ϕ-funktionerna valda på förhand och konstanterna c 0,...,c n är de man arbetar med. Reflektionsmodell 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. 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 Absorption Perfekt reflektion: Matt reflektion Samma mängd ljus reflekteras i alla riktingar En del av det ljus som anländer till ytan övergår i värme. 2
Perfekt reflektion: Spegelreflektion Allt ljus reflekteras i spegelriktingen Perfekt transmission: Descartes/Snells lag θ θ n 1 n 2 θ i n θ o 1 sinθi = n2 sinθ o Spridning Riktiga material Ljus sprids och studsar på små partiklar inne i materialet. A Practical Model for Subsurface Light Transport Wann Jensen et al., SIGGRAPH 2001. Reflektionsdata Mätning Mätning Matematisk modell http://math.nist.gov/~fhunt/brdf/ 3
Reflekterat ljus i riktn. V = + i Färg hos ljuskälla i Matematisk modell: Phongreflektion Allmänljus + (k d ( L i ) + k s (V R i ) α ) Ickerealistiska reflektionsmodeller V R i θ θ L i A on-photorealistic Lighting Model for Automatic Technical Illustration Gooch, Gooch, Shirley & Cohen, SIGGRAPH 2000 Ickerealistiska reflektionsmodeller Ickerealistiska reflektionsmodeller Art-Based Rendering of Fur, Grass, and Trees Kowalski et al., SIGGRAPH 1999 Real-Time Hatching Praun, Hoppe, Webb, Finkelstein, SIGGRAPH 2001 Lokala belysningsmodeller Globala belysningsmodeller Tag endast hänsyn till materialegenskaper och egenskaper hos ljuskällan. Tag också hänsyn till ljusets interaktion med övriga modeller i scenen: skuggor och (eventuellt) indirekt ljus 4
Reciprocitet Vi betraktar en punkt på en yta. Hur mycket ljus anländer till punkten? Exempel: Klassisk ray tracing (strålföljning) θ ut θ in θ ut θ 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! Problem: Oändligt många strålar att följa! Många strålar når aldrig kameran! Exempel: Klassisk ray tracing (strålföljning) 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. Många relevanta ljusstrålar ignoreras i klassisk ray tracing. Indirekt ljus Klassisk ray tracing vs. indirekt ljus 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 http://www.lightscape.com S. Y. Lee & F. K. Musgrave, http://www.wizardnet.com/musgrave/clouds.html Rayleighspridning Översikt Bildsyntes Reflektionsmodell Kameramodell, Tone mapping, Rastrering Bildelement / RGB-värden, Volt för elektronkanoner Display of The Earth Taking into Account Atmospheric Scattering ishita et al., SIGGRAPH 1993. Grafikkort, skärm 6
Avbildningar... Environment mapping: DEMO...har vi redan tittat på i transformationsföreläsningen! Virtuell spegel Environment mapping Environment mapping Komplex omgivning 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. Rendering with atural Light Paul Debevec, 1998. (Fotobaserad bildsyntes) Fiat Lux Paul Debevec et al., 1999. Paul Debevec et al., 1997. Pär Bäckström, 2001 7
Styrning Trichromacy (tristimulusteori) Godtyckligt spektra X = k Y = k Z = k Färgmatchningsfunktioner 780 380 780 380 780 380 V ( x( dλ V ( y( dλ V ( z( dλ Färgmatchningsfunktioner CIE 1931 2 1,8 1,6 1,4 1,2 1 0,8 0,6 0,4 0,2 0 360 385 410 435 460 485 510 535 560 585 610 635 660 685 710 735 760 785 810 Våglängd x y z Visuell matchning Y är luminans = ljusintensitet. Metamers (metamerer) Tre värden räcker för att beskriva ett godtyckligt spektra m.a.p. färg. Det innebär att flera spektra ger upphov till samma färgintryck. Sådana spektra kallas metamerer. Chromaticity 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ärggamut Antag att vi har tre monitorfosforer och plottar deras positioner i chromaticitydiagrammet. De färger som de tillsammans kan visa ligger då inom triangeln mellan positionerna. 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. 8
Ljusstyrkeintervaller Tone Mapping Operators 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. Verklig scen Samma synintryck Datorskärm Hur kan vi komprimera ett 10000:1-intervall till ett 100:1-intervall? Tone operator Virtuell scen Linjär operator Visuella operatorer Välj ett maxvärde m. Dividera alla ljusvärden med m. Om resultatet är >1, sätt till 1. Icke-linjära operatorer baserade på perceptionspsykologi. 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. (Greg Ward, A Contrast-Based Scalefactor for Luminance Display, Graphics Gems IV.) Resultat Medelluminans Wards operator 9
Översikt Bildsyntes Reflektionsmodell Kameramodell, Tone mapping, Rastrering Bildelement / RGB-värden, Volt för elektronkanoner Grafikkort, skärm 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. 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 Respons hos monitorfosforer För vanliga datormonitorer gäller Luminans (Y) Y Vγ 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