Ö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. (Ex: svart eller vit T-shirt i sommarsolen...) 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 m.fl., 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 m.fl., 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 m.fl., SIGGRAPH 1993. Grafikkort, skärm 6
Avbildningar Hårnålskameran ew Principles of Linear Perspective Brook Taylor, 1719. Hårnålskameran i datorn Projektioner Perspektiv Bildplan (image plane) Parallell Andra avbildningar 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 atural 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 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. 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? Tone Mapping Operators Linjär operator Samma synintryck Verklig scen 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 Reflektionsmodell Medelluminans Kameramodell, Tone mapping, Rastrering Bildelement / RGB-värden, Volt för elektronkanoner 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