Fénképek utólagos megvilágítása Vass Gegel gegel_vass@siggaph.og www.vassg.hu Budapesti Műszaki és Gazdaságtudománi egetem Összefoglaló A dolgozatban eg egszeű módsze keül bemutatása, amel lehetővé teszi a fotókon látható tágak utólagos megvilágítását. A kiszámított új megvilágítás a tág minden látható pontjához tatozó nomál vekto meghatáozásán alapszik. A nomál vekto iána néhán speciális viszonok között ögzített kép segítségével töténik. 1. Bevezető Gakan felmeülő pobléma a 3D gafikusok köében, hog a különböző pogamok segítségével kiszámolt fotoealisztikus képet a képszintézis ismételt elvégzése nélkül akaják módosítani. Az egik ilen tipikus igén a képet létehozó ek utólagos módosítása. Ee a pogamok lehetőséget is adnak, hiszen nem csak a kiszámított kép eges pixeleinek színét táolják el, hanem opcionálisan az ánaláshoz szükséges egéb infomációkat is. Ezen infomációk alapján pedig aká eg képfeldolgozó pogam is ki tudja számítani a megváltozott viszonokhoz tatozó színétékeket. A számítógépes gafika ohamos fejlődésével ege nagobb igén mutatkozik a valós felvételek utólagos módosításáa is. Sajnos azonban a valós felvételekből sokkal nehezebb azokat az infomációkat kineni, melek nélkülözhetetlenek a képek utólagos módosításához. A dolgozatomban aa keesem a választ, hog mi módon lehet eg valós felvételen látható tágat utólag, számítógép segítségével tetszőleges iánból megvilágítani. Vizsgálódásaim soán töekedtem aa, hog az általam javasolt módsze können megvalósítható legen, és ne tege szükségessé speciális szoftve kifejlesztését. 2. Felületek ánalása A számítógéppel létehozott fotoealisztikus 3D gafika lénege az, hog olan képeket geneáljunk, melek a lehető legjobban hasonlítanak a valódi képekhez. Máa számos algoitmust ismeünk, melek valószeűen szimulálják a viselkedését és jól használhatóak a vituális tágak képezésée. Ezen algoitmusok alapvetően két feladatot oldanak meg: Megpóbálják kiszámítani a vituális világ viszonait. A kiszámított ek sugásűűség és a felületek anagi jellemzői alapján megadják az objektumok pontjainak színét. Mivel célunk eg felvételen látható valós tág megvilágítása azaz kiszínezése, foglalkoznunk kell a fenti két poblémával. Meg kell mondanunk, hog pontosan milen fénnel világítjuk meg a testet és azt, hog ennek hatásáa hogan változik meg a tág eg-eg pontjának színe. 2.1 Kiszámított viszonok A valószeű megvilágítás kiszámítása akko különösen nehéz feladat, ha figelembe vesszük a felületek közötti visszaveődéseket, azaz a globális illuminációs poblémát póbáljuk megoldani. Mivel vizsgálataink soán eg-eg test megvilágításával foglalkozunk felesleges ezt az igen nehéz poblémát kezelnünk. A gos számítás és az egszeű megvalósíthatóság édekében feltételeztem, hog a felhasználó iánekkel világítja meg a felületeket és nem jönnek léte visszaveődések. A viselkedésének ilen egszeűsítése azaz a diekt vag lokális illumináció használata nem jelent jelentős minőségi omlást, hiszen a eflexióknak minimális szeepe van ha csak eg tág megvilágítását számítjuk ki.
2.2 Színezés Ha a felhasználó meghatáozta a iánát és eősségét ki kell számítani, hog a tág éppen megjelenített pontja milen színű. Ezt alapvetően két megközelítés szeint adhatjuk meg attól függően, hog milen adatok állnak a endelkezésünke. A Paul Debevec által javasolt [3] eljáás szeint lehetőségünk van méni, hog a tág pontjai milen színűek különböző iánú megvilágítottság mellett. Ha ez az adatbázis a endelkezése áll, csak ki kell olvasni az általunk használt hatásának megfelelő színétékeket eg táblázatból. Mivel ez a módsze pecíziós műszeek használatát feltételezi, ezét nem volt alkalmazható a kutatásban. Ha nem áll endelkezése mét adat a különböző beesési iánú ek hatásáól, lehetőségünk van kiszámolni, hog milen színűek lesznek a felület pontjai adott megvilágítás esetén. Ehhez az ánalási egenlet [1] egszeűsített alakját használhatjuk, mel segítségével adott ián esetén kiszámítható a szemünkbe jutó menniség : L( ω ) = L f ( ω, ω) cosθ ahol L( x, ω) jelöli az x pontból a szem iánába eső menniséget (sugásűűség), L az ián eősségét, f ( ω, ω) az anagi jellemzőt leíó BRDF függvént (Bidiectional Radiance Distibution Function) és θ a beeső és a felület nomál vektoa által bezát szög (1. ába) (1) Lambet modell A Lambet modell a tökéletesen diffúz anagok viselkedését íja le az azonos nevű tövén alapján. Ebben az esetben a visszavet sűűség független a nézeti iántól: f ( ω, x, ω) = k (2) A Lambet illuminációs modell használata esetén a tág színének meghatáozásához a felhasználó által megadott konstansokon diffúz visszaveődési egütthatón és az ián eősségén kívül csupán a iánvektoa és a nomál vekto által bezát szög szükséges. Phong modell Mivel a spekuláis visszaveődés modellezésée alkalmatlan a Lambet modell eg másik illuminációs modellt használunk a csillanások létehozásáa. A Phong modell az egik legkönnebben számítható modell: n f ( ω, ω) = k ( R ω) / cosθ s (3) ahol k és n a csillanás eősségét és nagságát s hatáozza meg, ω a nézeti iánvekto, R pedig a iánvektoának, ω -nek a tüköképe a felületi nomálisa. A képletből látszik, hog a Phong modell kiétékeléséhez a konstansokon kívül a felületi nomális, a iánvektoa, és a nézeti vekto szükséges. 3. Szükséges adatok előállítása 1. ába: Felület színének meghatáozása A Phong és a Lambet modell kiétékeléséhez olan adatok ismeetée van szükség, melek nem feltétlenül állnak endelkezésünke. Ezen adatokat vag a felhasználónak kell meghatáoznia, vag a képanagból kell az infomációt kineni. A BRDF függvén azt adja meg, hog adott becsapódási ián esetén a mekkoa hánada veődik vissza a vizsgált iánba. A számítógépes gafikában több módsze létezik a BRDF függvén megadásáa és számításáa. A legegszeűbb és a legeltejedtebb az un. empiikus modellek használata. Ezek a modellek nem mét adatokon alapulnak, hanem egszeű matematikai összefüggésekkel közelítik a valódi anagok viselkedését. Vizsgálataim soán a kettő legismetebb modellt alkalmaztam a tágak megjelenítéséhez, a Phong és a Lambet modellt. Megvilágítás iána Mivel a lokális illuminációs modellt alkalmazom és csak iáneket használok, a megvilágítás iána eg konstans vektoal jellemezhető, melet a felhasználó hatáoz meg. Nézeti ián A nézeti ián meghatáozása sajnos nem egételmű, hiszen a endelkezése álló kép nem
tatalmaz a kamea pozíciójáa, látószögée vag tozításáa vonatkozó, können kinehető infomációt. A feladat az, hog a feldolgozandó kép minden eges pixeléhez meghatáozzunk eg iánvektot, mel a kameából az illető pixel középpontjába néz. A gos számítás és az egszeű implementálhatóság kedvéét feltételeztem, hog a vituális kamea tozítás nélküli pespektivikus vetítést valósít meg. A kamea pozícióját szintén önkénesen jelöltem ki, bá ez a számítások megnehezítése nélkül módosítható (2. ába). Ha valamilen módon sikeül a test geometiáját epodukálni, a paciális deiváltakból können meghatáozhatjuk a nomál vektookat. Ez a megközelítés sajnos számos poblémát vet fel. Eg daab állóképből, vag több, de uganazon kameaállásból készült felvételek alapján gakolatilag lehetetlen a modell létehozása. A ma létező összes algoitmus az un. image based modelling algoitmusok több infomációt igénelnek a geometia epodukálásához. Ez lehet pl. eg mozgó kameás kép-szekvencia, szteeo kép vag különböző iánú metszeti képek. Mivel alapvető célom, hog a gakolatban is können alkalmazható legen a módsze, ezt a megközelítést elvetettem. Ha közvetlenül a nomál vekto iánáa szeetnénk következtetni a képből, akko meg kell vizsgálunk, hog mitől is függ a kép eg pixelének intenzitása: I = f N, ω, ω, f, L, ) ( x, (5) 2. ába: Számításokhoz használt koodinátaendszeben ételmezett kamea pozíció Íg az eges pixelekhez a nézeti vekto az alábbi egszeű alakban számítható: ω = ( x,, 0 ) ( 0.5, 0.5, 1 ) (4) A fenti meglehetősen leegszeűsített egenlet szeint eg daab ián esetében is az () pixel színe minimum 5 ismeetlentől függ: az illető pontbeli nomál vekto, a beesési iána, a nézeti ián, az anagi jellemző (BRDF függvén) és a eőssége. Célunk, hog olan képet készítsünk ahol meghatáozott köülmének között teljesül, hog a pixel intenzitása csak az ismeetlen nomál vekto iántól függ: I = f N ) (6) ( úg, hog létezik A felület nomál vektoa A legnehezebb feladat a nomál vekto meghatáozása. Ha a felhasználó akaná meghatáozni minden eges pixelben a képen látható tág felületének nomál vektoát, akko kéntelen lenne a tág vituális mását (a stand in objektumot) lemodellezni (pl. eg polgon felület fomájában). Eg ilen modell ismeetében bámelik 3D szoftvecsomag képes a nomál vektookat kiíni eg külső állománba. Ez a megközelítés azonban a gakolatban a legitkábban alkalmazható. A javasolt módsze lénege az, hog a valódi tágól készített fotók alapján hatáozzuk meg a nomál vektookat. Mivel ezek a vektook szoos kapcsolatban vannak a tág felületének alakjával, alapvetően két lehetőség nílik meghatáozásuka: (7) 1 f ( I x, ) = N Ebben az esetben uganis a képpontok színei alapján meg tudjuk hatáozni minden pontban a nomál vektot. Ha ezt megtettük, akko má nincs semmi akadála, hog a Phong és a Lambet modell alapján utólag megvilágítsuk a valódi képen látható tágat. 4. Nomál vekto meghatáozása Annak édekében, hog a (6.) összefüggést elő tudjuk állítani - azaz a képpontok színe az ismet paaméteeken kívül csak a nomál vektotól függjön -
az (5.) összefüggés szabad paaméteeit - kivéve a nomál vektot - le kell kötni. Ez a feldolgozandó kép készítésée jelent megkötéseket. 4.1 Előfeltevések a felhasznált képekől A BRDF függvén ismeete az egik legpoblematikusabb pont, hiszen ez eg komple öt dimenziós függvén. Fénképek alapján csak úg tudjuk kiszámítani a valódi BRDF-et ha endelkezése áll az eedeti könezet geometiai modellje [4]. Vizsgálataimban nem volt módom a tágak anagi jellemzőinek pontos és egszeűen megvalósítható méésée, ezét feltételeztem, hog a vizsgált tágak diffúz anagok, azaz a Lambet tövénnek megfelelően a visszavet független a nézeti vektotól. Ezzel az egszeűsítéssel két leget ütöttünk eg csapása, hiszen íg a nézeti vektoa sincs szükség az összefüggésben. Ha a kép készítéséhez használt eket is ismejük, további két paamétet tudunk lekötni. Mivel feltételeztük, hog csak eg foás van jelen, má csak ennek iánát és eősségét kell meghatáozni. Ha a vizsgált tágtól elég messzie visszük a foást, akko iánnek tekinthető konstans eővel. Íg az (5.) összefüggés jobb oldalán csak a nomál vekto ismeetlen, a többi paamétet ismejük. Hog pontosan milen összefüggés van a nomál vekto és a képpontok között az még további vizsgálatot igénel, az viszont bizonos, hog akámilen legen ez a kapcsolat invetálhatónak kell lennie. Sajnos azonban eg, a fenti megkötésekkel készített képen sok olan azonos színű képpont lehet, melekhez más-más nomál vekto tatozik, azaz séül az invetálhatóság. Ahhoz, hog a színétékek és a nomál vekto iána között eg-egételmű hozzáendelés legen, valamilen speciális iánú megvilágítása lesz szükség. 4.2 Speciális megvilágítás Eg tébeli vekto meghatáozása visszavezethető a koodinátaendszeben ételmezett háom komponensének meghatáozásáa. Vizsgáljuk meg, hog eg-eg komponens hogan nehető ki valós fotókból. A számításaim koodinátaendszee szeint ételmezett,z iánok a hoizontális, vetikális és mélségi iánoknak felelnek meg. Tekintsük elsőként a hoizontális komponenst. A Lambet modell szeint ott lesz a tág a legesebb, ahol a nomál vekto a iánába néz. Ennek tükében úg tudjuk elkeülni, hog különböző x komponensű nomál vektookhoz azonos esség tatozzon, hog a "jobból" vag "balól" világítja meg a tágat (3. ába). Ha ez teljesül, akko jobb- és baloldali megvilágítás esetén a pozitív ill. negatív x komponenseke következtethetünk a képekből. (1) és (2) alapján ez az összefüggés: L( ω ) = L k cosθ (8) Tegük fel, hog a jobból, azaz a pozitív x iánból ékezik. Ebben az esetben a nomál vekto és a iánának egségvektoa által bezát szög megegezik a nomál vekto és az x tengel által bezát szöggel. Ennek a szögnek a koszinusza pedig - meglepő módon - pontosan a nomál vekto x komponense. Vagis: L( ω ) = L k (9) N x Ez az invetálható összefüggés pedig azt mutatja, hog a "jobból" megvilágított Lambet típusú felület essége lineáis összefüggésben van a nomál vektoának x komponensével. Hasonló módon ha "balól" világítunk a negatív x komponenseke következtethetünk. A vetikális és mélségi ián hasonlóan megkapható. Nilván a negatív z komponensű nomál vektoal endelkező felületet nem láthatjuk, íg a z komponens nagsága lineáisan függ a kamea iánából ékező hatásáa kialakuló ességgel. 3. ába: Ha tetszőleges iánból ékezik a, nem tudunk a nomál vekto iánáa következtetni a pixel színéből. Ha oldalól világítunk a nomál vekto hoizontális komponensée má tudunk következtetni.
4. ába: A megadott iánokból ékező hatása. Látható, hog a visszaveődések miatt kis más iánból is jön. 5. Gakolati alkalmazás A fent észletezett speciális megvilágítással 5 daab képet kell készítenünk: jobból (+x), balól (-x), felülől (+), alulól (-), szemből (z). Ezen képek segítségével meghatáozhatjuk a pixelekhez tatozó nomál vektot. Ennek ismeetében a felhasználó által megadott iánfénnel utólag megvilágíthatjuk a valódi, lefotózott tágakat Phong ill. Lambet modell segítségével. A gakolati megvalósítás nem okoz nehézséget eg általános kompozitáló vag képfeldolgozó pogam segítségével, feltéve ha a felhasználónak lehetősége van saját kifejezéseket, un. scipt-eket vag expession-öket íni. 5.2 Infomáció kineése A képeket általában elő kell készíteni a feldolgozáshoz. Gondoskodni kell aól, hog a legvilágosabb pont teljesen fehé, a legsötétebb pedig fekete legen. Ilenko lehetőség van az esetleges hibák csökkentésée, például a szinte mindig létejövő, nem kívánt iánú visszaveődések hatásának gengítése évén. Édemes a nomál vekto iánát eg képben eltáolni az egszeű kezelhetőség miatt. Mivel a képfeldolgozó pogamok nem kezelik a negatív számokat, ezét a következő módszet használtam: (, z ) = ( J +1 B F +1 L E +1,, ) 2 2 2 (10) 5.1 Felvételek elkészítése Ha lehetőségünk van a tágat tetszőleges módon megvilágítani - vag nem megvilágítani - a következő megvilágítás melletti képeket kell elkészíteni: jobboldali, baloldali, felső, alsó és kamea iánú. Temészetesen a felhasználó tetszőleges ek mellett aká temészetes megvilágítást használva további képeket is készíthet a tágól. A módsze segítségével a speciális öt kép elegendő eg tetszőleges másik kép utólagos manipulálásához. Ha a vizsgált tágól temészetes megvilágításban készítünk képeket és nincs lehetőségünk a könezet eit eliminálni, akko sincsen pobléma. Készítenünk kell képeket a megadott 5 iánból töténő megvilágítás mellett, valamint eget az eedeti, temészetes megvilágításban. Ezek különbségét képezve megkapjuk az általunk elhelezett ek hatását, azaz az öt kívánt képet. Sajnos elkeülhetetlen, hog a megvilágított tág eges észei ánékolva legenek. Ezeken a teületeken a nomál vekto iánának koekt meghatáozása nem lehetséges a javasolt módszeel, íg a sok méledéssel endelkező, többnie konkáv felületek esetében nehézségekbe ütközhetünk. 5. ába: A 10. összefüggés segítségével kiszámított x és iánú komponensek ahol,z a kép háom színcsatonája, J és B a jobb- és baloldali megvilágítással, F és L a fenti- és lenti megvilágítással, E pedig az elölől készült megvilágítással készült kép világossága. Íg eg képben eltáoltuk a nomál vekto iánát úg, hog 0 és 1 közötti étékeket használunk. 5.3 Világítás számítása A nomál vektot ismeve má könnű a Phong és Lambet modell szeinti megvilágítás kiszámítása (1), (2) és (3) alapján. A Lambet modell megvalósítása:
6. ába: A tág utólagos megvilágítása különboző iánokból I = k cos θ = k ( N L) (11) Ahol k a felhasználó által megadott konstans, a koszinusz pedig a nomál vekto és a vektoának skaláis szozata. Figelni kell aa, hog a számítások soán az iánvektookat nomalizálni kell. A Phong modell számítása valamivel nehézkesebb: ( R ω) I k q ( R ω) cosθ = = (12) Ahol q a felhasználó által megadott konstans és R vekto a iánvektoának tüköképe a nomál vektoa. Ennek kiszámítása igen egszeű: R = L 2 N ( N L) (13) Két jelentős pobléma meül fel a módsze alkalmazása soán. Sajnos a mozgóképek utólagos megvilágítása nem lehetséges a fent észletezett módon. A másik jelentősebb pobléma, hog a tág azon észein, ahol jelentős önánékolás lép fel ossz eedmént kapunk. Szeencsée a tesztek tanulsága alapján ez a hiba nem szembetűnő. További fejlesztési lehetőség a képeken látható zaj hatásának csökkentése. Szintén hasznos lehet a nomál vektookból a tág geometiájának kiszámítása is. Sok alkalmazási lehetőség kínálkozik podukciós könezetben, hiszen a fotózásnak, a képek komponálásának alapvető eleme a megvilágítás. A módsze hasznos lehet például eklám- vag potéfotózás esetén, ahol a művészeti vezetők a fotózás után is belenúlhatnak utólag a kép viszonaiba. A (13) és a (4) összefüggéseket visszahelettesítve (12)-be az alábbi képletet kapjuk a Phong modell megvalósításáa, mel közvetlenül implementálható: I = q (( L 2 N ( N L)) ((,0) (0.5, 0.5,1)) 6. Összefoglalás (14) A dolgozatban bemutattam eg igen egszeű módszet, mel segítségével utólag, kizáólag a képfeldolgozás eszközeivel lehetőség nílik eg valós felvételen látható tág tetszőleges iánból töténő megvilágításáa. Az eljáás több, speciális fotó elkészítését teszi szükségessé, melek alapján a felület nomál vektoáa következtethetünk. Ez általában nem szolgál tökéletesen pontos eedménnel, de a tesztek alapján használhatónak bizonult. 7. Hivatkozások [1] Kajia, J., T.: The Rendeing Equation, In Poceedings of SIGGRAPH 86, p. 143-150. [2] Yu, Y.: Image Based Suface Details, Couse 16 in Couse Notes of SIGGRAPH 2000. [3] Debevec, P., Hawkins, T., Tchou, C., Duike, H., P., Saokin, W., Saga, M.: Acquiing the Reflectance Field of a Human Face, In Poceedings of SIGGRAPH 2000, p. 145-156. [4] Yu, Y., Debevec, P., Malik, J., Hawkins, T.: Invese Global Illumination: Recoveing Reflectance Models of Real Scenes Fom Photogaphs, In Poceedings of SIGGRAPH 99, p. 215-224. [5] Szima-Kalos, L.: Számítógépes gafika, Compute Books, 1999.
7. ába: Az eedeti kép és az utólagos megvilágítás kombinációja. 8. ába: Eg kézől készült fotók alapján ekonstuált nomál vekto komponensek. 9. ába: Az eedeti és az utólagos megvilágítás hatása. Jól látszódik, hog a Phong modell hatásáa létejönnek a csillanások a kéz felületén