Západočeská univerzita v Plzni Fakulta aplikovaných věd
Semestrální práce z předmětu Matematické modelování
Osvětlovací modely v počítačové grafice
Martin Dohnal A07060 27. ledna 2008
[email protected]
2/10
1 Teoretický úvod 1.1
Představy kontinua a bilanční princip
3/10
1.2
Bilanční princip
4/10
2 Osvětlovací modely Osvětlovacím modelem v kontextu počítačové grafiky rozumíme modely, které popisují intenzitu světla v bodech scény. Hlavními faktory jsou světelné zdroje, vlastnosti objektů ve scéně a samozřejmě také vlastnosti pozorovatele.
2.1
Intenzita osvětlení
[Wiki] Intenzita osvětlení je definovaná jako světelný tok dopadající na určitou plochu. Je tedy podílem světelného toku (v lumenech) a plochy (v metrech čtverečních). Jednotkou osvětlení je lux (lx), což je osvětlení způsobené světelným tokem 1 lm dopadajícím na plochu 1 m². I=
d dA
Pro případ bodových světel platí, že I=
J cos , kde 2 d
J je svítivost světelného zdroje, d je vzdálenost bodu od zdroje a svírá normála plochy bodu a vektor od bodu ke světlu.
2.2
je úhel který
Typy modelů
Modely lze rozdělit na dvě hlavní kategorie. Lokální modely zohledňují pouze vztah mezi světelnými zdroji a objekty. Je zde bráno v úvahu pouze přímé osvětlení od světel. Osvětlení objektů u globálních modelů navíc závisí i na okolí. Počítá tedy i s nepřímým osvětleným z osvětlených objektů scény.
Výsledkem modelu je vždy vztah, ze kterého lze spočítat intenzitu osvětlení v určitém bodě scény vzhledem k pozici pozorovatele. Navíc může mít model ještě další parametry jako např. konkrétní vlnová délka světla, pro kterou nás intenzita zajímá. Dále budou popsány obecné vlastnosti obou typů modelů a uvedeny modely, které se běžně používají. Všechny níže popsané modely mají jedno omezení – používají
5/10 geometrický model světla – což znamená, že jsou ochuzeny o jevy jako ohyb světla či interference. Tyto jevy většinou nejsou důležité, takže si je modely mohou dovolit zanedbat. Uvidíme, že každý model má i další specifická omezení.
3 Lokální modely Lokální modely jsou charakteristické svou jednoduchostí. Objekty ve scéně jsou ovlivněny pouze přímým zářením světel a neovlivňují se navzájem. Z tohoto faktu je zřejmé, že takové modely jsou poměrně nedokonalé. Proto se používají zejména v případech, kde je kladen důraz na rychlost. Mohou tedy najít aplikaci v medicíně, kde je nutné rychle zobrazit velké množství dat, nebo třeba ve hrách, kde je dat méně, ale zas je kladen velký důraz na plynulost. Světla v těchto modelech jsou pouze bodová. Taková světla ve skutečnosti vůbec neexistují, ale mnoho zdrojů lze tímto způsobem aproximovat. Důsledkem tohoto omezení jsou pak ostré stíny ve scéně. Intenzita osvětlení daného bodu je v těchto modelech rozložena na dvě hlavní složky – difúzní a odrazová. Ve skutečnosti složky nelze takto přesně oddělit – je tou pouze další aproximace kvůli zjednodušení. •
Difúzní (Diffuse) Je to část světla, která se po dopadu na povrch rovnoměrně rozptýlí do všech stran. Z hlediska pozorovatele to tedy znamená, že ať bude viditelný bod pozorován z jakéhokoliv úhlu, bude tato složka vždy stejná. Intenzita je závislá pouze na úhlu v jakém na ní světlo dopadá.
•
Odrazová (Specular) Tato část světla je na rozdíl od difúzní složky závislá na tom, odkud je daný bod pozorován. Tuto vlastnost mají v podstatě všechny materiál odlišnou a lze jí popsat empiricky zjištěnými hodnotami nebo funkcemi označovanými jako BRDF (viz níže).
Protože popisujeme lokální modely, odrazová složka zde obsahuje pouze intenzity dopadajících světel. Nezávisí tedy vůbec na vyzářeném světle z okolních objektů. Z toho plyne například to, že tímto modelem nemůžeme zobrazit zrcadlo. Protože tedy vůbec neuvažujeme světlo odražené od objektů, bude celková scéna mnohem tmavší než by měla být. Proto se do většiny modelů zavádí ještě jedna složka Osvětlení od okolí (Ambient), která tento nedostatek napravuje. Výsledné lokální modely pak vypadají následovně. L x , e =I d x I s x , e I a , kde •
L x , e je výsledná intenzita osvětlení daného bodu x, pozorovaného z bodu e
•
I d x je difúzní složka osvětlení daného bodu x
•
I s x , e je odrazová složka osvětlení daného bodu x, pozorovaného z bodu e
•
I a je složka simulující část světla odraženou z okolí
Složky I d x a I s x , e lze pro každé světlo počítat zvlášť a poté je sečíst. I a je většinou pouze konstanta, která zvyšuje jas celé scény. Ambient složka Kromě parametrů pozice bodu a pozice pozorovatele je nutné znát ještě normálu plochy bodu x . Pak už je možno počítat difúzní a odrazovou složku.
6/10
3.1
BRDF funkce
BRDF (Bidirectional Reflectance Distribution Function – Dvousměrná odrazová distribuční funkce) funkce určuje, jaká bude odražená intenzita v závislosti na pozici světla a pozici pozorovatele. Odrazivost se liší u každého skutečného materiálu, ale mnoho modelů používá pro výpočet obecnou funkci s nějakým parametrem, který (při dané funkci) nejlépe aproximuje skutečnost. Na obrázku níže je znázorněna tato funkce pro určitý materiál. Hodnota na křivce pak představuje danou intenzitu. Zde lze pozorovat, že pro tento konkrétní materiál lze funkci rozdělit na difúzní část (část kterou by tvořil půlkruh) a odrazovou – zbytek. V obecném případě to tak samozřejmě není, jak bylo popsáno výše.
3.2
Phongův osvětlovací model
Zde je uveden Phongův model, který bývá nejčastěji užívaným lokálním modelem osvětlení. L x , e =I d x k d I s x ,e k s I a k a Dále můžeme rozepsat jednotlivé složky intenzity (opět pouze pro jedno světlo ve scéně): L x , e =J
N.S R.V n k J k s I a k a . d d2 d2
•
Difúzní složka je závislá na svítivosti zdroje světla J. S rostoucí vzdáleností d intenzita klesá. Dále je zohledněn směr plochy v bodu x vůči zdroji světla (N.S).
•
Odrazová složka je také závislá na intenzitě zdroje světla a vzdálenosti. Komplexní BRDF funkce je v tomto modelu nahrazena skalárním součinem vektoru R (odraz vektoru S) a vektoru pozorovatele V. Tím je určen cosinus odchylku od nejsilnější intenzity odrazu. Exponent n je pak parametrem materiálu.
7/10
•
Ambient složka je opět pouze konstanta.
4 Globální modely Globální modely zahrnují do vztahu pro výpočet intenzity navíc i intenzity světla vyzařovaného z okolí. V podstatě to znamená, že konstantní ambient složku uvedenou u lokálních modelů nahrazují nějakým výpočtem intenzit paprsků dopadajících na bod z okolí. Výhodou těchto modelů je mnohem větší přesnost (a tedy realističtější obraz). Samozřejmě za cenu mnohem větší složitosti.
4.1
Globální vykreslovací vztah (Rendering equation)
Všechny globální modely vychází z obecného vztahu: L o x , , , t= Le x , w , , t∫ f r x , ' , , , t Li x ,' , , t−' n d ' Vidíme, že tento obecný vztah uvažuje vlnovou délku a čas t . Díky tomu lze vypočítat integrováním přes vlnovou délku intenzitu různých barevných kanálů. A integrováním v čase dosáhnout rozmazaného obrazu při pohybu. Pro jednoduchost budeme uvažovat jen statickou scénu a jednu danou vlnovou délku. Tím můžeme zápis trochu zjednodušit:
L o x , = Le x , w∫ f r x , ' , Li x , ' −' n d ' . Vztah vypadá stále poměrně komplikovaně a tak popíšeme jednotlivé části: •
L o x , - celková výstupní intenzita osvětlení ve směru z bodu x .
Tj. to co v daném bodě pozorujeme. •
L e x , - složka intenzity vyzářená z bodu x ve směru . Touto složkou se popisují všechny zdroje světla.
8/10 •
∫ f r x , ' , Li x , ' −' n d ' Tato složka představuje součet všech intenzit paprsků přicházejících ze směrů ' do bodu x z okolí (hemisféry) .
•
f r x , ' , - koeficient odrazu (BRDF funkce) Je vidět, že obecný globální vztah používá BRDF funkci ve všech případech a nerozděluje ji na difúzní a odrazovou část.
•
Li x , ' - intenzita světla ze směru ' do bodu x
•
−' n - útlum intenzity světla vzhledem k normále plochy bodu x
Tento obecný globální osvětlovací model odpovídá realitě mnohem více než lokální modely. Přesto má stále nedostatky, které plynou z geometrického popisu světla (neuvažuje ohyby světla a interference). Pokud bychom se podle tohoto modelu pokusili počítat intenzitu v určitém bodě, je vidět že je závislá na všech intenzitách v okolí popsaném hemisférou. Bylo by tedy nutné spočítat nejdříve všechny body z okolí, které jsou ale opět závislé na svém okolí. Analytické řešení tohoto modelu je zdá se prozatím nemožné a tak je nutné tento model dále zjednodušit a pokusit si o numerická řešení. Metody, které vedou k přibližnému řešení jsou již známy – např.: •
Radiozita
•
Ray-tracing
•
Ambient occlusion
Uvedené modely budou stručně popsány. Zejména z hlediska zjednodušení, které bylo pro daný model provedeno a problémů které tím model zavádí. Algoritmické řešení lze najít na internetu či v odborných knihách.
4.2
Radiozita
Tento model je využíván pouze pro řešení difúzní složky intenzity, která není závislá na úhlu ze kterého bod pozorujeme.
9/10 Navíc jsou všechny povrchy ve scéně rozděleny na malé plochy, které vyzařují konstantní intenzitu světla. Díky těmto dvěma vlastnostem je možné jednotlivé intenzity spočítat jako: N
Bi =E i∑ F ij B j , kde j =1
•
Bi je celková výstupní intenzita plochy i
•
E i je celková emise světla plochy i
•
F ij je koeficient určující jaká část intenzity z plochy j je přijata plochou i
•
B j je výstupní intenzita plochy j
Pro všechny plochy pak řešíme lineární soustavu těchto rovnic. Existují ještě odlišné přístupy jak radiozitu počítat, ale ty mají většinou horší výpočetní složitost. Nevýhodou je závislost na počtu ploch. Čím drobněji jsou povrchy objektů rozděleny, tím se zvětšuje soustava rovnic a výpočet trvá déle. Naopak čím jsou plochy větší, obraz se zhoršuje, protože každá plocha má konstantní intenzitu. Výhodou je, že tento model lze předpočítat pro celou scénu a není závislý na pozici pozorovatele (protože počítá pouze s difúzní složkou intenzity světla).
4.3
Ray-tracing
Tento model je založen na náhodném výběru pouze několika paprsků, místo počítání celého integrálu pro zjištění intenzity přicházející z okolí. Odhad je tedy méně přesný ale mnohem rychlejší. Nevýhodou tohoto přístupu je právě jeho náhodnost. S každým výpočtem stejné scény je výsledek trochu jiný. To lze sice obejít třeba použitím pseudonáhodných čísel se stejnou počáteční hodnotou, ale v obrazu se pořád vyskytuje hodně šumu. V důsledku toho pak vzniklo mnoho podobných metod, které se snaží tento nedostatek napravit. Výhodou této metody je, že složitost není závislá na geometrii scény. Nevýhodou budiž nutnost počítat vše znovu při pohybu pozorovatele.
10/10 Na obrázku (z [Apl05]) je vidět radiozitní model vlevo a ray-tracing model vpravo. Je vidět, že radiosita počítá pouze s difúzní složkou. Ray-tracing si poradí i s odrazy, nicméně za cenu většího šumu. Srovnání je samozřejmě zavádějící, protože je ovlivněno použitými algoritmy. Je zde uvedeno pouze proto, aby byly zřetelně vidět nedostatky obou modelů.
4.4
Ambient occlusion
Tato metoda je asi maximálním zjednodušením globálního osvětlovacího modelu. Je použitelný například pro scénu s oblohou. Z každého bodu je vystřelen paprsek mnoha směry z hemisféry plochy bodu. Pokud není nalezen žádný průsečík, z bodu je v tomto směru vidět na oblohu. Výsledky se pak sečtou a vydělí počtem zkoušených směrů. Z toho je určeno zastínění bodu. Již z názvu vyplývá, že tento model slouží pouze pro výpočet intenzit z okolí. Je tedy nutné ještě použít ještě další model pro ostatní složky intenzit. Překvapivé je, že takto jednoduchý postup dokáže poměrně dobře ošálit lidský zrak. Navíc je výpočet mnohem rychlejší než výpočty radiozitního přístupu či ray-tracingu. Proto se také používá ve filmech či novějších hrách.
5 Závěr V práci bylo prezentováno rozdělení grafických osvětlovacích modelů na lokální a globální modely. Oba modely byly vysvětleny a byly popsány jejich příklady.
6 Zdroje [Wiki]
Wikipedia http://en.wikipedia.org/wiki/Rendering_equation
[Chenn03]
S. Chenney – Computer graphics
[Apl05]
V. Apl – Globální osvětlovací metody
[Mika06]
S. Míka – Matematické modelování