Úvod do PBR #1 – za všechno může fyzika

2 weeks ago by in VFX články Tagged: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Bývaly doby, kdy enginy využívaly všemožné více či méně pochybné triky k tomu, aby navodily pocit, že jejich světlo a materiály se chovají realisticky. Výkon počítačů a konzolí zkrátka před (pár) lety nedostačoval tomu, aby se dalo přistoupit k fyzikálně přesnému řešení. Každý tvůrce enginů a shading systémů si navíc k tvorbě svých materiálů, světelných a vizuálních podmínek přistupoval víceméně po svém… a výsledkem byl chaos. To se naštěstí v nedávné době změnilo a světem se začal šířit nový fenomén: PBR.

Jak již jste si možná odvodili, tato zkratka v sobě skrývá pojem “Physically Based Rendering”. Jedná se o technologii, po které téměř okamžitě skočily všechny moderní herní enginy, renderovací a shading nástroje, a podporu pro ni už dávno vytvořily i klasické softwary jako Maya či 3DSMax. PBR zkrátka hýbe světem 3D grafiky – proto jsem se o této tématice rozhodl na VFXcz sepsat článek.

Poznámka: Pokud jste v oblasti CG grafiky totální začátečníci, doporučuji stáhnout si (zdarma) tenhle e-book, který vám v kapitolách 10 až 21 představí základní 3D pojmy. 

Poznámka 2: Na škole jsem při fyzice moc nedával pozor a rozhodně nejsem přes tematiku největším expertem na světě. Pokusil jsem se být co nejpřesnější při vysvětlování pojmů svými slovy. Pokud jsem se však dopustil nějaké závažné chyby, určitě mě v komentářích opravte 🙂


Proč zvolit PBR?

Co PBR znamená pro samotné tvůrce? Především to, že se musí naučit uvažovat jinak, než byli doposud zvyklí. Fyzikálně přesněji. Musí si zvyknout, že Diffuse a Specular už nejsou tak důležité pojmy, jako dříve, že místo nich se objevuje něco jako Metalness či Roughness. Zkrátka a dobře, pomocí PBR už se tvůrce nesnaží navodit pocit, že materiál vypadá jako kov / dřevo / omítka atd. Místo toho jde o simulaci způsobu, jakým se světlo v reálném světě skutečně šíří po povrchu takových materiálů.

PBR tedy přináší spolehlivý způsob, jak vytvářet konzistentně realisticky vypadající materiály a rendery. Už nemusíte hádat, jak by měly vypadat vaše Specular, Reflective a další mapy – PBR nástroje je vypočítají za vás podle toho, jak specifikujete vlastnosti materiálu, jenž vytváříte.

Znamená to, že PBR je odpovědí na všechno? Rozhodně ne. To, že se jedná o fyzikou svázané řešení samozřejmě ubírá na kreativní svobodě, nemáte příliš možnost přizpůsobovat si shadery a světelné podmínky pro své vlastní účely. Zato však při použití PBR systémů získáte záruku, že vaše 3D světy budou vypadat realisticky za všech podmínek. A to se hodí ve spoustě případů – především při tvorbě assetů pro realistické hry či VFX, které mají být nerozeznatelné od skutečnosti.

Pozn: Existují samozřejmě výjimky, různá studia si své PBR shadery přizpůsobila tak, aby nad výsledkem měli kreativní kontrolu, např. Disney.

Úžasná ukázka toho, co enginy postavený na PBR dokáže vypočítat v realtime:


Za všechno může fyzika

Věnujme se chvíli fyzikální stránce problematiky (koneckonců, ono “Physically Based” není v názvu náhodou). A začněme pěkně od začátku. Povrch každého materiálu reaguje nějakým způsobem na světlo. Tato reakce závisí na tom, z čeho je materiál složen, a v zásadě se dělí na dva typy: Reflection (odraz) a Diffusion (rozptýlení).

V prvním případě se světlo, které dopadá na povrch, pod stejným úhlem odráží zpět do prostoru. Určitá část paprsků se přitom odráží do očí pozorovatele (proto v předmětu vidíme odraz okolí). Tímto způsobem funguje například zrcadlo, sklo či kovové povrchy. V případě druhém světlo prochází povrchem předmětu do jeho vnitřku. Zde jsou rozptýlené paprsky zčásti pohlceny, zčásti se odráží zpět do prostoru (a očí pozorovatele). Tentokrát už se tak ovšem děje chaotickým způsobem, proto se odrazy zdají matné a nezřetelné.

Rozptyl světla pod povrchem a to, jakým způsobem se tak v daném materiálu děje, ve výsledku udávají barvu materiálu. Zjednodušeně: zatímco na povrchu reflektivních materiálů vidíme daleko více jejich okolí, v difůzních můžeme vidět samotný materiál. Barva materiálu se v 3D grafice nazývá “Albedo”, “Diffuse Color”, někdy i “Base Color” (záleží na programu a shaderu, který používáte).

Čím je předmět více reflektivní, tím méně je difúzní – a naopak (logické odůvodnění: difúze = to, jak moc paprsek selhal v odrazu a zanořil se do povrchu). Právě tato závislost je jedno z neměnných pravidel PBR: nelze zde mít zároveň difúzní i reflektivní předmět.Tato zákonitost má dokonce svůj název: Energy Conservation. Ta kromě toho říká, že odražené světlo nesmí být silnější než světlo, jenž na předmět dopadá – a tvůrce by se měl tímto pravidlem bez výhrad řídit, pokud chce vytvářet realistické materiály.

Vlevo vidíte kompletně difúzní materiál, vpravo zcela reflektivní.

Nic v reálném světě samozřejmě není tak jednoduché, množství materiálů není definováno jen tím, jak moc jsou reflektivní či difůzní, musí se vzít v úvahu i to, jak moc propouští světlo. Určité materiály způsobují nízkou difůzi a umožňují světlu, aby se určitou měrou šířilo skrz jejich strukturu až na druhou stranu – tomu se říká Translucence (průsvitnost). Jde například o pokožku, plody ovoce, matné sklo atd. V určitých případech je toto propouštění natolik silné, že materiálem prochází téměř věškeré světlo jen s minimálním ohybem (sklo, voda atd.). V takovém případě jde o Transparency (průhlednost).

Další veledůležitý jev, který ovlivňuje odraz světla je povrchová nerovnost materiálu. Jen minimum objektů v reálném světě má dokonale rovný, odrazný povrch. Na většině se vyskytují nějaké větší či menší nedokonalosti, hrbolky a škrábance. Tato vlastnost se většinou definuje jako “Roughness” nebo “Smoothness” případně “Gloss”. I v případě, že se jedná o zcela reflektivní materiál, povrchová nerovnost dokáže v této odraznosti nadělat pěknou paseku. Jednoduše proto, že i když se každý světelný paprsek stále odráží pod stejným úhlem jako dopadá, povrch předmětu má tolik záhybů, že z odražených paprsků je podobný guláš jako v případě difůzních materiálů. Odražený obraz je pak podobně nezřetelný a rozmlžený jako v případě nízké reflektivity.


Kovy a úhel odrazu

Zcela unikátní roli hrají v PBR systému kovové předměty. Ty jsou specifické v tom, že jejich reflektivita se často pohybuje okolo 80%, takže většina paprsků je odražena a téměř žádné se nedostanou dovnitř materiálu. Tento ideální stav je samozřejmě mnohdy pokažen faktem, že na povrchu železa, zlata, bronzu atd probíhají neustálé chemické reakce, zanáší se špínou, odírají se, reznou atd, takže v reálném světě téměř nikdy nemají dokonalé odrazné vlastnosti. Nic to nemění na tendenci kovů světlo primárně odrážet. Kromě toho pak mají kovy unikátní vlastnost v podobě zabarvování svých odrazů – jev, který se v 3D grafice nazývá jako Specular Tint.

Vzhledem k tomu, jak moc specifické jsou kovové materiály oproti všem ostatním, množství PBR systémů svůj workflow zbudovalo právě okolo vlastnosti “Metalness”. Tvůrce v podstatě v prvé řadě specifikuje, zdali je materiál kovový či nekovový a nástroj za něj spočítá další vlastnosti jako intenzitu rozptylu a odraznosti. Tedy další oblast, kde PBR systém přebírá kontrolu, aby zaručil fyzikálně přesné výsledky.

 

Automaticky je vypočítávána i vlastnost zvaná Fresnel (podle Augustina-Jean Fresnela, francouzského vědce z 18. stol.). Ta udává, jakým způsobem se chová lom světla v závislosti na úhlu, pod nímž ho pozorujeme. Zjednodušeně jde o to, že sledujeme-li reflektivní předmět pod 90 stupňovým úhlem, je mnohem větší pravděpodobnost, že se nám paprsky odrazí do oka, než když na něj hledíme zpříma. Ještě zjednodušeněji: okraje bývají jasnější než střed. Asi nejlépe jev pochopíte, když se podíváte na toto video:

PBR ve výsledku bere oba dva zmíněné efekty – Fresnel (intenzita odrazu podle zvoleného úhlu pohledu) a Roughness (intenzita povrchových nerovností) – a vypočítává akurátně to, jak se mají lesknout různé části povrchu. Ať už jsou hladké, špinavé, poškrábané, zrezlé atd, PBR systémy na základě neměnných výpočtů vyprodukují mapu toho, jak se od nich odráží světlo. Jinými slovy, člověk už nemusí jít do Photoshopu a odhadovat, jak desaturovat, zkontrastnit či invertovat svoji Diffuse mapu. PBR to dělá za něj, konzistentně a realisticky.

Kdo chce jít pro informace přímo ke zdroji, k lidem, kteří všemu rozumí nesrovnatelně více, doporučuji toto video:

To, v jaké podobě se s výše uvedenými pojmy setkáte v 3D softwaru a jak funguje PBR workflow se dozvíte v příštím díle článku.

Podobné články

Freelance filmař, trikař a grafik. Bývalý Cinematic Director ve Warhorse Studios. Milovník Pána prstenů a Jurského parku. Tvůrce VFXcz.