Hlavní navigace

Grafika v UNIXu - fotorealistické zobrazení

25. 3. 2002
Doba čtení: 6 minut

Sdílet

Metody s vysokou věrností zobrazování se často souhrnně označují jako „fotorealistické“. To naznačuje, že výsledky vypadají tak skutečně, jako by šlo o fotografie. Dnes si popíšeme techniky, které k takovým výsledkům vedou, a přidáme několik ukázkových obrázků. Nakonec si povíme o specializovaných přístrojích pro 3D grafiku.

Úvodem bych rád upozornil, že při přípravě minulého dílu jsem se poněkud opozdil s ukázkami, takže definitivní úprava článku vznikla až v úterý ráno.

Modely pro šíření, odraz a lom světla

Abychom mohli odhadnout osvětlení každého bodu v rozumném čase, je třeba provést aproximaci chování všech objektů ve scéně. Její míra je závislá na schopnostech metody.

Nejjednodušší model, který se používá ve stínovacích metodách, je model zdrojů osvětlení jako světelných bodů, od nichž se šíří světlo po přímce a ubývá s druhou mocninou vzdálenosti (občas se používá i menší, nefyzikální mocnina, aby scéna nebyla příliš kontrastní). Narazí-li na těleso, rozptýlí se stejnoměrně do všech směrů. Tato metoda je věrohodná při zobrazování matných plastů. Nemusíme příliš přemýšlet, abychom zjistili, kde všude lze model vylepšit. Zdroje světla nejsou body, ale oblasti s určitou velikostí a tvarem, světlo může být při cestě v poloprůhledných materiálech pohlcováno nebo rozptylováno, a nakonec i odraz světla od tělesa není tak jednoduchý, nemluvě o lomu. K tomu nám však zdaleka metody stínování nestačí.

Lepší model, popisující paprsek světla, dopadající na těleso, je metoda tří význačných jevů na povrchu tělesa – zrcadlový odraz, lom a rozptyl. Tento popis předpokládá, že se dopadající světlo rozdělí, a vyvolá tyto tři efekty. První dva se vypočtou podle zákona odrazu a lomu, rozptyl se vypočte podle rozptylové funkce. Nejjednodušší, konstantní rozptylová funkce, předpokládá stejný rozptyl do všech směrů (blízké chování plastů). Mnohem lepší výsledek dávají empirické materiálové funkce poměru rozptylu v závislosti na odchylce od směru zrcadlového odrazu. Protože základní verze funkce nebere v úvahu úhel odrazu od tělesa, nedokáže ani ona popsat takové jevy, jako je například totální odraz (při velmi šikmém úhlu pohledu se např. od skla téměř všechno světlo odrazí). Kromě komplikované dvoudimenzionální rozptylové funkce k tomu slouží např. Torrance–Sparrowův model. Ten matematicky popisuje chování povrchu tělesa, jako by bylo složeno z různě natočených „mikroplošek“, jejichž vliv se může ve výsledku skládat nebo potlačovat. Jde o model výpočetně náročný, nicméně pro své kvality přesto používaný. I tato metoda bere v úvahu jen povrch tělesa a nezabývá se rozptylem světla uvnitř průsvitných těles.

Další zajímavou možností pro rozšíření popisu povrchu tělesa jsou textury (vzory). Pokud má mít těleso různobarevný povrch, provede se na něj mapování dvourozměrného obrázku (jedná se o stejná mapování, o jakých jsme se zmínili v minulém dílu, pouze směr použití je opačný). Textury se používají nejen k tvorbě barevného povrchu, ale často se jejich pomocí popisují i drobné nerovnosti nebo dokonce parametry rozptylu světla.

Metody sledování paprsku (ray tracing)

Metody sledování paprsku již lze zařadit mezi fotorealistická zobrazení.

Základní metodou je rekurzivní zpětné trasování paprsku. V této metodě provádíme zpětné trasování paprsku z místa pozorovatele. Zjistíme-li, že paprsek přichází z určitého bodu na tělese, spočteme na něm rozptyl vůči všem viditelným zdrojům světla. U paprsků zrcadlového odrazu a lomu zkoumáme, odkud dorazily, abychom mohli celý postup zopakovat. Rekurzivní sledování paprsku dává ve své základní podobě výborné výsledky u scén s lesklými a průhlednými předměty a zrcadly. Metoda dokáže spočítat i stíny. Neporadí si však se zabarvením světla dvojím rozptýleným odrazem (např. bílá matná kulečníková koule těsně vedle červené). Nezobrazí ani mírně neostrý odraz okolních těles od lehce matných okolních předmětů.

Metody progresivního trasování paprsku (sledování od zdroje světla k pozorovateli) nedoznaly výraznějšího rozšíření, vzhledem k jejich výpočetní náročnosti a skutečnosti, že většina výpočtů se provádí zbytečně (jen minimum paprsků se dostane k pozorovateli). Na druhou stranu může v budoucnu tato metoda posloužit pro tvorbu hologramů (výpočetní náročnost tím nevzroste). Za zmínku stojí její zajímavá varianta – metoda Monte Carlo – náhodné vysílání paprsků náhodnými směry.

Tím se dostáváme k nejsofistiko­vanějším fotorealistickým metodám, jakými bezesporu jsou radiační metody.

Radiační princip

Postupy založené na radiačním principu simulují šíření světla ve scéně. Jsou odvozeny od algoritmů známých z tepelných výpočtů a jsou založeny na analytickém výpočtu vzájemného ovlivňování jednotlivých plošek mezi tělesy. Ze vstupní geometrie se pro scénu vytvoří matice konfiguračních faktorů (octree), která popisuje vzájemnou viditelnost a míru ovlivnění jednotlivých plošek – tedy jak silně přispívá jedna ploška do světelné bilance druhé. Poté se použijí materiálové funkce jednotlivých plošek a vznikne obrovská soustava lineárních rovnic. Ta se vyřeší některou ze známých metod (např. iterativní Gauss-Seidlova). Tím dostaneme vyzařovací funkci všech plošek ve scéně. Protože radiační metoda pracuje s triangulací, následuje vyhlazení pomocí známého stínování.

Právě popsaná základní verze je extrémně výpočetně náročná. Její první implementace radiosity vyžadovala pro výpočet klasické testovací scény (místnost se židlemi, reflektory a koulemi na stole) na tehdy nejrychlejším počítači Cray více než pět dnů strojového času. Problémem radiačních metod je nejen výpočetní náročnost, ale i použití složitějších analytických těles.

Časem vznikly různé urychlovací postupy, které metodu přiblížily i majitelům běžných PC.

V praxi se lze setkat s plynulou škálou postupů od stínování až po radiační metody.

Protože ani standardní radiační metoda nestačí k věrnému zobrazení některých scén (např. barevné reflektory v mlze), vývoj algoritmů dále pokračuje.

Tabulka č. 261

Superquadrics
Oblíbený šetřič obrazovky Superquadrics ukazuje, že i vyhlazené stínování může dát vysoce působivé výsledky, navíc počítač běžné výpočetní síly může objekty plynule animovat, sice bez vyhlazování hran, ale zato i s texturou. Zmíněný plastový vzhled zde není na závadu.
Autoři: 1981 Dr. Alan Barr (Caltech University), 1987–1997 Ed Mackey.

Tabulka č. 262

zrcadlové koule
Silnou stránkou rekurzivního sledování paprsku jsou lesklé plochy a zrdcadlové odrazy. Velká kulička zároveň ukazuje použití textury k popisu nerovností povrchu.
Obrázek byl vytvořen pomocí demonstranční scény Cluster od Erica Hainese z programu Persistence of Vision™ Ray Tracer (PovRay)

Tabulka č. 263

místnost
Radiační metoda umožňuje simulovat zrcadlové odrazy na stěně („prasátka“) nebo odraz rozptýleného světla. Cenou za kvalitu je zhruba půlhodina strojového času na 1,4 GHz Athlonu.
Vytvořeno z ukázkové scény programu Radiance.

Tabulka č. 264
stínování
sledování paprsku radiosity

Srovnání typických vlastností jednotlivých metod na vybrané scéně: Nahoře stínování s použitím stínů, vlevo rekurzivní sledování paprsků s měkkými stíny a vpravo radiosity. Je zřejmé, že sledování paprsku již dokáže vytvořit skleněný vzhled krychle, ale vzájemné odrazy mezi matnými tělesy zvládnou až radiační metody.
Obrázky byly vytvořeny pomocí demonstranční scény Shadows od Steva Angera z programu Persistence of Vision™ Ray Tracer (PovRay)

Tabulka č. 265

šachy
Ani radiační metoda neřekla poslední slovo! Dalšího zlepšení lze dosáhnout též simulací chování objektivu fotoaparátu či lidského oka – zde např. nastavení ohniskové vzdálenosti. Výpočetní čas však dosáhl třičtvrtěhodinu (Athlon 1,4 GHz DDR).
Obrázky byly vytvořeny pomocí demonstranční scény Chess 2 od Ferry Island Pixelboys (Š 1991), Ville Saariho a Dana Farmera (1996) z programu Persistence of Vision™ Ray Tracer (PovRay).
Všechny zde uvedené obrázky byly vytvořeny v Linuxu za pomoci otevřeně kódových aplikací.

Přístroje pro 3D grafiku

3D grafika se vymanila ze svých skrovných začátků a vstoupila plně na komerční trh. Podobně, jako existují fotobanky s běžnými fotografiemi, existují i 3D banky, kde si můžete požadovaný model vybrat a zakoupit. Na reklamní disketě jedné firmy najdete dokonce 3D model krávy…

Přestože existuje mnoho proprietárních formátů souborů pro 3D modelování, právě díky potřebám 3D bank vzniklo také mnoho špičkových převodníků mezi 3D formáty (převážně komerčních). Nejste tedy v situaci majitelů šablon formulářů pro kancelářské balíky, kteří musí se změnou programu zahodit i všechny vytvořené šablony…

UX DAy - tip 2

Jak takové modely vznikají? Většinou je nevytváří žádný počítačový grafik (či snad „počítačový sochař“?). Nástrojem na jejich tvorbu jsou 3D skenery. Do speciální zatemněné místnosti se vloží model, načež skener začne objekt osvětlovat laserem (lasery). Podle zjištěného místa dopadu pak počítač vytvoří 3D model. Další metody pro konvexní resp. „téměř konvexní“ objekty jsou založeny na „skenování“ za pomoci obepínajícího lanka nebo měřícího hrotu (tento postup je používán u průmyslových NC strojů). Jinou možností je analýza několika fotografií objektu, kdy se před bodový zdroj světla vloží kontrastní čtvercová síť.

Zajímavé jsou též obchody s dynamickými modely – rozpohybovat pouhou triangulaci krávy by byla neskutečná námaha. A tím jsme se dostali k jednomu z témat příštího dílu – 3D animaci.

Byl pro vás článek přínosný?