Jak se algoritmy učí kreslit

Počítačový obraz reálného světa Syntéza obrazu (v literatuře někdy označovaná anglismem renderování či renderi...


Počítačový obraz reálného světa
Syntéza obrazu (v literatuře někdy označovaná anglismem renderování či
rendering) představuje významné odvětví počítačové grafiky. Počítačová tvorba
obrazu napodobujícího do určité míry reálný svět, kterou z širšího hlediska
počítačové grafiky můžeme chápat jako speciální případ počítačové vizualizace
dat, představuje jeden ze základních pilířů při tvorbě počítačových her,
programů pro tvorbu grafiky i animací a CAD/CAM či GIS systémů.
Realistická počítačová kresba nachází uplatnění při výrobě filmových efektů,
simulaci různých fyzikálních jevů, v architektuře či ve vojenství a samozřejmě
ve všech formách projektů virtuální reality.
Nehledě na účel a kontext využití syntézy obrazu v různých druzích aplikací je
počítači svěřený úkol vždy prakticky týž: na základě zadaného počítačového
modelu vytvořit čistě počítačovými prostředky obraz pokud možno nerozeznatelný
od fotografie téhož objektu nebo situace v reálném světě. V tomto textu se
nebudeme zabývat jinými souvisejícími úlohami, jako je zpracování nebo úprava
existujících obrazových záznamů, ale pouze jejich vytvářením pomocí počítače (i
když i realistická tvorba obrazu se může pochopitelně opírat o data z reálného
světa, například fotografie nebo filmy textur, nasnímaná vektorová data modelů
či animací, případně změřené fyzikální parametry objektů).

Rychlost vs. věrnost
Vznik (výpočet) obrazu v počítači může probíhat řadou různých algoritmických
postupů; zvolený způsob výpočtu má pak zásadní vliv na dobu běhu, grafickou
kvalitu a věrnost vytvořeného obrazu.
Při praktickém použití jde většinou o to zvolit přijatelný kompromis mezi
rychlostí na jedné straně a kvalitou grafického výstupu na straně druhé. Jako
jednotící měřítko pro měření kvality jednotlivých metod lze pak využít srovnání
s reálným světem tedy zkoumat, nakolik určitá metoda respektuje zákony optiky a
vlastnosti lidského zraku, které optické jevy a jak věrně je schopna vystihnout.
Práci počítačového programu při tvorbě obrazu lze srovnat s činností
fotoaparátu při pořizování snímku. Hlavní rozdíl spočívá samozřejmě v tom, že
zatímco osvit filmu je uskutečňován skutečným světlem dopadajícím skrz optickou
soustavu objektivu, při počítačové syntéze obrazu mají všechny tyto složky
(světlo, objektiv i cílové záznamové médium) charakter virtuální, existující
jenom jako modely při běhu grafického programu.

Nutnost statistiky
Fotony dopadající v reálném světě do oka nebo do objektivu fotoaparátu
přicházejí z vnějšího prostředí, ve kterém se odráží a rozptyluje světlo
přírodních nebo umělých světelných zdrojů (např. slunce, hvězdy, oheň,
svítidla).
Zdálo by se, že dokonale realistického obrazu lze nejsnáze a zároveň
nejpřesněji dosáhnout prostou fyzikální simulací vyzařování fotonů ze zdrojů a
jejich pohybu a rozptylování na scéně. V běžném prostředí je však obraz bohužel
spoluvytvářen obrovským množstvím částic (řádově 1030 fotonů), což je stále
zcela mimo možnosti současné výpočetní techniky. Je navíc zřejmé, že do
drobného lidského oka dopadá pouze nepatrný zlomek fotonů pohybujících se
scénou, takže taková simulace by byla nanejvýš neekonomická.
Dokonalá simulace pohybu fotonů by navíc vyžadovala mikroskopicky přesný popis
struktury všech zúčastněných povrchů, případně dokonce prostředí, v němž se
světlo pohybuje (obvykle vzduch). I to je pochopitelně mimo možnosti dnešních
počítačů. Lidské oko ani film ovšem neregistrují každý dopadající foton zvlášť.
Rozptylování světelného toku na površích scény lze díky velkému počtu
procházejících fotonů dobře modelovat pomocí matematické statistiky a teorie
pravděpodobnosti. Pro zvolené místo povrchu lze pak popsat charakter náhodného
rozdělení, podle jehož zákonů se v daném bodě rozptýlí světlo dopadající z
určitého směru.

Zobrazovací rovnice
Charakter povrchu je v matematickém modelu zobrazované scény reprezentován
určitým tvarem této tzv. rozptylovací funkce (v literatuře se označuje jako
BRDF, Binary Reflection Distribution Function, obousměrná distribuční funkce
odrazivosti). Pro lesklé povrchy má funkce výrazné maximum odpovídající
zrcadlovému odrazu dopadajícího světla; naproti tomu povrchy matné světlo
rozptylují rovnoměrněji, mikroskopická struktura takových povrchů způsobuje, že
fotony se od nich odrážejí v libovolných směrech víceméně nezávisle na směru
dopadajícího světla.
Matematicky lze tyto zákony shrnout do tzv. zobrazovací rovnice, což je
integrální rovnice umožňující vypočítat energetické poměry toku světla ve scéně
a tím zároveň i určit, co ze zvoleného místa uvidí pozorovatel.
Zobrazovací rovnice je ovšem stále příliš složitá na to, aby ji bylo možno
přesně vyřešit; základním úkolem realistického zobrazování je pak vhodně
zvolit, které její části je možno zanedbat a rovnici zjednodušit natolik, aby
umožňovala výpočet v rozumném čase. V závislosti na dostupném výkonu výpočetní
techniky lze pak podle požadavků na rychlost a věrnost zvolit některou ze
zobrazovacích metod, která světelné poměry ve scéně vyřeší a tím umožní výpočet
realistického obrazu.
Složitost výpočtu se dělí na dvě základní složky: výpočet geometrie (výpočty
související s tvarem a umístěním objektů ve scéně) a výpočet osvětlení (určení
osvětlení objektů scény na základě údajů o zdrojích světla a struktuře
povrchů). Metody realistické syntézy obrazu lze pak rozdělit mj. na základě
toho, v jaké míře a jakou metodou zjednodušují a provádějí tyto dva základní
výpočty.

Dráty a hrany
Nejjednodušší a nejrychlejší metody tvorby obrazu prostorové scény se problémem
osvětlení vůbec nezabývají a vizualizují pouze geometrickou strukturu scény.
Jedná se především o drátový model (wireframe) a o model se skrytím
neviditelných hran (hidden edge).
Ačkoli lze v tomto případě jen ztěží hovořit o realistickém zobrazování, tyto
nejstarší zobrazovací metody dodnes nacházejí své uplatnění v editorech
prostorových modelů, při přípravě počítačových animací nebo při technologické
vizualizaci v CAD/CAM systémech. V těchto případech je přesné geometrické
znázornění hran mnohem důležitější než jakoby realistický pohled na editovaný
model.

Druhá generace
Další generace algoritmů kombinuje výpočet geometrie scény s velmi
zjednodušeným osvětlovacím modelem. Jedná se především o malířův algoritmus
(painters algorithm) a paměť hloubky (Z-buffer). Zatímco v případě malířova
algoritmu probíhá výpočet viditelných částí scény metodami analytické geometrie
(výpočtem průniků průmětů hran těles scény), paměť hloubky prostě postupně
vykresluje jednotlivé povrchy v zorném poli a řešení vzájemných zákrytů
ponechává na obrazové paměti, ve které vzniká vytvářený rastrový obraz. Díky
své algoritmické jednoduchosti lze tuto metodu snadno a rychle realizovat přímo
hardwarem grafických procesorů, což ji předurčuje k použití v počítačových
hrách na dnešních PC a herních konzolích.
Malířův algoritmus a paměť hloubky již umožňují alespoň zhruba naznačit některé
osvětlovací poměry ve scéně. Pro jednotlivé plochy lze určit jejich vzdálenost
a natočení vůči světelným zdrojům a na základě toho odhadnout jejich osvětlení.
Plochy lze snadno "opláštit" texturami, rastrovými kresbami zvyšujícími při
vhodném použití realistický dojem z takto vytvořených obrázků. Tímto způsobem
lze zároveň snížit složitost vektorových modelů a tedy i počet elementárních
ploch modelu potřebných k dosažení iluze hladce zaoblených povrchů.
Hlavní výhodou dosud popsaných algoritmů je jejich implementační snadnost,
vysoká rychlost a jednoduchá realizovatelnost hardwarem. Základem vysoké
rychlosti je řešení osvětlovacích poměrů pro celé plochy najednou, což na jedné
straně výpočet zrychluje, na druhé straně to ovšem komplikuje nebo přímo
znemožňuje simulaci některých světelných efektů (např. vržené stíny, nepřímé
osvětlení, odrazivé povrchy).
Pro úplnost se zde sluší dodat, že některé z těchto pokročilejších
osvětlovacích efektů lze různými triky napodobit i pomocí paměti hloubky (např.
vržené stíny pomocí tzv. stínových map vytvářejících obraz scény jakoby z
pohledu světelných zdrojů nebo zrcadla zdvojením scény). Jedná se ale stále o
pouhé programátorské triky umožňující obejít nebo zamaskovat nedostatky
vyplývající z podstaty zobrazovací metody.

Výpočet osvětlení
Další úroveň představují realistické zobrazovací algoritmy založené na
samostatném výpočtu osvětlení pro jednotlivé viditelné body scény. Jejich
základem je aparát geometrické optiky umožňující sledovat průchod světelných
paprsků scénou. Proto se také označují za metody sledování paprsku (ray
tracing).
Tato metoda pro každý viditelný bod scény zkoumá jeho osvětlení z jednotlivých
světelných zdrojů; lze tak určit vržené stíny. Navíc v případě, kdy scéna
obsahuje (ideální) odrazivé a průhledné povrchy, lze simulovat zpětný průchod
paprsku i těmito složitějšími optickými soustavami, a simulovat tak např.
zrcadla a skleněné povrchy.
Nevýhodou tohoto postupu je vysoká (exponenciální) závislost časové náročnosti
na počtu a umístění odrazivých povrchů ve scéně. Princip metody navíc
neumožňuje simulovat matné povrchy rozptylující světlo a potažmo nepřímé
osvětlení, takže výsledný obraz obsahuje nepřirozeně ostré stíny a barevné
přechody. Realistické měkké světlo zde zcela chybí.
V historii vývoje počítačové grafiky byla reakcí na popsané nedostatky metody
sledování paprsku metoda radiozity. Zatímco metoda sledování paprsku je
založena na čistě lokálním principu vzorkování osvětlení v diskrétních bodech,
radiozita si svůj aparát vypůjčila z fyzikálních zákonů vyzařování tepelné
energie.
Scéna se v tomto případě rozdělí na konečné prvky a sestavením rovnic pro
přenos světelné energie mezi nimi vznikne soustava, jejíž řešení poskytne
globální informaci o osvětlení jednotlivých ploch. Zřejmou nevýhodou metody
představuje nutnost rozdělit scénu na konečné prvky a sestavit a řešit soustavu
rovnic pro všechny prvky najednou, takže pro složitější scény se paměťové a
časové nároky výpočtu stávají neúnosnými.

Rozměrová exploze
Všechny výše uvedené postupy k řešení zobrazovací rovnice používají tím či oním
způsobem metodu konečných prvků. Postupy běžné numerické matematiky se ze
zkoumané funkce rovnoměrně odeberou vzorky a vhodným průměrováním jejich hodnot
se odhadne výsledná hodnota. Výpočetní náročnost této metody bohužel
exponenciálně roste s dimenzí prostoru, v němž výpočet probíhá. Naneštěstí
právě zobrazovací rovnici je třeba řešit v mnohorozměrném prostoru, takže
pravidelné vzorkování takřka nepřipadá v úvahu. Tento problém se někdy označuje
pojmem rozměrová exploze (dimensional explosion).
Obdobně jako v případě výše zmíněné otázky úplné simulace fotonů ve scéně navíc
představuje výpočet s pravidelným vzorkováním nezměrné plýtvání výpočetním
výkonem. Věnuje totiž prakticky stejnou energii výpočtu důležitých i naprosto
zanedbatelných nebo zastíněných oblastí scény.

Metoda Monte Carlo
Matematická analýza naštěstí nabízí aparát umožňující zaútočit na oba tyto
problémy (rozměrovou explozi i zbytečně důkladný výpočet nepodstatných částí
scény): Řešením jsou tzv. stochastické výpočetní metody, při nichž se do
výpočtu vnese náhodný prvek. Konkrétně se v tomto případě jedná zejména o
integraci metodou Monte Carlo, kdy se hodnota integrálu odhaduje ze vzorků
funkce odebraných v náhodných místech.
Výpočet Monte Carlo ovšem vyžaduje velmi pečlivé zacházení s náhodným výběrem
vzorků. Tvar náhodného rozdělení používaného pro jejich výběr musí pokud možno
odrážet jejich důležitost pro výsledný obraz (v jasně osvětlených a dobře
viditelných oblastech je třeba odebírat více vzorků než v oblastech slabě
osvětlených nebo zastíněných).
Zásadní výsledný rozdíl oproti metodám konečných prvků (sledování paprsků,
radiozita) spočívá v tom, že zatímco tyto metody počítají obraz scény s pevně
danou přesností a zvýšení složitosti scény nebo nároků na přesnost způsobí jen
odpovídající prodloužení výpočtu, náhodné metody typicky umožňují obraz scény
spočítat ve víceméně libovolně krátkém čase. Snížení výpočetního času ovšem
přitom samozřejmě způsobí vyšší zašumění výsledného obrazu. Se zvyšováním
dostupného výpočetního času úroveň šumu postupně klesá, obraz jakoby vystupuje
z mlhy.
Mezi metody tohoto typu patří například stochastické sledování paprsku
(stochastic ray tracing), metoda fotonových map (photon mapping) nebo
obousměrné sledování [světelných] cest (bidirectional path tracing).

Pokročilá optika
S trochou nadsázky lze říci, že náhodné procházení světelných cest lépe
kopíruje fyzikální realitu náhodného rozptylování fotonů ve scéně; výsledkem je
mimo jiné schopnost těchto algoritmů simulovat pokročilejší optické jevy, jako
jsou kaustiky (čočkové efekty, například kroužek jasnějšího světla na stole pod
sklenkou nebo mihotání světla na dně bazénu), rozlévání barev (bílá zeď
sousedící s červenou zdí získá načervenalý nádech nepřímým osvětlením světlem
odraženým od červené zdi), podpovrchové rozptylování (u materiálů jako např.
mramor nebo porcelán, kdy světlo prochází a lomí se i uvnitř materiálu) nebo
prostorové rozptylování (například mihotání ohřátého vzduchu za turbínami
letadel či nad pouští nebo světelné efekty hudebních show vznikající rozptylem
laserového světla v dýmu nebo mlze).

Doplňující postupy
Zobrazovací metody s náhodným výběrem vzorků lze rozvíjet řadou dalších směrů;
jedná se většinou o postupy a principy velmi mladé, podléhající překotnému
teoretickému i praktickému vývoji, takže je nyní velmi obtížné předvídat, zda a
které z nich naleznou postupem času uplatnění v komerční počítačové grafice.
Jedním z doplňujících postupů je např. metoda Metropolis, vycházející z teorie
tzv. Markovových procesů, kdy jednotlivé vzorky světelných cest nejsou při
výpočtu vybírány zcela náhodně, ale na základě principů vzdáleně podobných
genovým mutacím. To umožňuje například syntézu obrazu u scén s velmi slabým
nebo nepřímým osvětlením s příspěvky z komplikovaných světelných cest, kdy
zobrazovaný prostor osvětlí pouze zanedbatelná část výkonu vyzářeného ze
světelných zdrojů.
Další možný směr vývoje těchto metod vede cestou snižování jejich výpočetní
náročnosti tím, že se sice provádí náhodné vzorkování, ale v každém kroku se
najednou zpracovávají celé svazky namísto jednotlivých světelných cest. Cílem
této metody je snížit časovou náročnost geometrických výpočtů tím, že
viditelnost a průsečíky paprsků s objekty scény se určují pro celé svazky
paprsků najednou namísto pro každou jednotlivou zkoumanou světelnou cestu
samostatně. V případě takových technik se dokonce opět rýsuje možnost část
algoritmu převést do specializovaných grafických procesorů, což umožní lépe
distribuovat potřebný výpočetní výkon, a tím tvorbu obrazu zrychlit.

Hlavní metody pro syntézu obrazu
drátový model (wireframe)
model se skrytím neviditelných hran (hidden edge)
malířův algoritmus (painters algorithm)
paměť hloubky (Z-buffer)
radiozita (radiosity)
stochastické sledování paprsku (stochastic ray tracing)
metoda fotonových map (photon mapping)
obousměrné sledování [světelných] cest (bidirectional path tracing)



Budoucnost filmového průmyslu
Moderní počítačová grafika díky prudkému nárůstu dostupného výpočetního výkonu
prodělává v posledních letech bouřlivý vývoj a odhaluje stále nové, nedávno
netušené možnosti tvůrcům umělecky i vědecky zaměřených počítačových
audiovizuálních děl. Zřejmě ovšem ještě nenastala doba, kdy filmová díla budou
vznikat čistě prostřednictvím počítače s pouze okrajovým nebo žádným využitím
herců a klasických filmařských metod; počítačem vytvořené filmy, ač stále
populárnější, dosud spíše volí stylizaci, než snahu o plnou nápodobu reálného
světa (např. Hledá se Nemo, Doba ledová, Shrek, Příšerky s. r. o.).
Na druhé straně v hraných velkofilmech se počítačová grafika již dobře
zabydlela a otevřela jejich tvůrcům takřka Pandořinu skříňku dříve
nemyslitelných postupů např. Titanic, Matrix, Mumie, nové díly Hvězdných válek
nebo Jacksonovo opus magnum Pán prstenů. Kompletně počítačovými prostředky byla
ve filmu Pán prstenů vytvořena postava Gluma.

Syntéza obrazu na webu
Internet doslova přetéká odkazy na technologie typu Z-buffer. Následuje proto
přehled adres mapujících nejmodernější a nejdokonalejší metody počítačové
syntézy obrazu.
www.iit.bme.hu/~szirmay/puba.html
graphics.stanford.edu/papers/veach_thesis/
www.cs.princeton.edu/courses/archive/fall02/cs526/lectures/
/global.pdf
www.lems.brown.edu/vision/people/leymarie/Refs/CompGraphics/
/Render/General.html
graphics.cs.uni-sb.de/Courses/ws0203/cg/Literatur/
/Dutre_GlobalIlluminationCompendium.pdf
www.cs.utah.edu/~bes/papers/scenes/









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.