Svět na kolejích

Základní teorie fyzického vykreslování (PBR)

Fyzické vykreslování (PBR) je vzrušující, pokud volně definovaný trend v reálném čase, který se v poslední době vykresluje. Termín je značně okázalý, často vyvolává zmatek, co přesně to znamená. Krátká odpověď je: “mnoho věcí” a “záleží”, což je spíše neuspokojivé, takže jsem se na sebe pokusil vysvětlit, co PBR představuje a jak se liší od starších způsobů vykreslování. Tento dokument je určen pro neinženýry (umělce s největší pravděpodobností) a nepředstavuje žádnou matematiku ani kód. Hodně z toho, co dělá fyzický systém stínování odlišný od jeho předchůdců, je podrobnější úvaha o chování světla a povrchů. Možnosti stínování byly natolik pokročilé, že některé staré přiblížení mohou být nyní bezpečně vyřazeny, a spolu s nimi některé ze starých prostředků produkce umění. To znamená, že inženýr i umělec by měli pochopit motivaci těchto změn.

Budeme muset začít s některými základy tak, aby byly dobře vymezeny předtím, než začneme upozorňovat na to, co je nové, ale pokud budete mít se mnou prostřednictvím částí, které možná už víte, myslím, že to najdete dobře číst. Pak můžete také chtít zkontrolovat vlastní článek Joe Wilsona o vytváření uměleckých děl PBR.

 

Difúze a odraz – také známé jako “difuzní” a “zrcadlové” světlo – jsou dva termíny popisující nejzákladnější oddělení interakcí povrchu / světla. Většina lidí bude znát tyto myšlenky na praktické úrovni, ale nemusí vědět, jak jsou fyzicky odlišné. Když světlo narazí na hranici povrchu, část z něj odráží – to znamená, že se odrazí od povrchu a nechá se směřovat směrem k protilehlé straně povrchu normálu. Toto chování je velmi podobné jako míček hozený na zemi nebo na stěnu – odrazí se v opačném směru. Na hladkém povrchu to bude mít za následek zrcadlový vzhled. Slovo “specular”, často používaný k popisu efektu, pochází z latiny pro “zrcadlo” (zdá se, že “specularity” zní méně nepříjemně než “zrcadlení”).

Ne všechna světlo se však odvíjí od povrchu. Obvykle někdo pronikne do interiéru osvětleného objektu. Tam bude buď absorbován materiálem (obvykle konvertováním na teplo), nebo vnitřně rozptýleným. Některé z tohoto rozptýleného světla se mohou vrátit zpět z povrchu a znovu viditelně vidět oční bulvy a kamery. To je známo mnoha jmény: “Difuzní světlo”, “Difúze”, “Subsurface rozptyl” – všichni popisují stejný efekt.

V některých případech je difúze komplikovanější – u materiálů, které mají například širší rozptylové vzdálenosti, například kůže nebo vosk. V takových případech obvykle neprobíhá jednoduchá barva a stínicí systém musí brát v úvahu tvar a tloušťku objektu, který svítí. Jsou-li dostatečně tenké, objekty často vidí světlo rozptylující zadní stranu a pak se mohou nazývat průsvitné. Pokud je difúze ještě nižší (například ve skle), téměř vůbec žádný rozptyl není vůbec vidět a celý obraz může procházet objektem z jedné strany na druhou neporušený. Toto chování je natolik odlišné od typické difuzie “blízko k povrchu”, že pro simulaci je obvykle potřeba jedinečné shadery.

 

S těmito popisy máme nyní dostatek informací, abychom dospěli k důležitému závěru, tedy k tomu, že se reflexe a šíření vzájemně vylučují . Důvodem je, že aby světlo mohlo být rozptýleno, světlo musí nejprve proniknout do povrchu (to znamená, že se nezobrazí). To je známo v zastíněném textu jako příklad “úspory energie”, což jen znamená, že světlo opouštějící povrch není nikdy jasnější než to, co na něm původně padlo.

To lze snadno prosadit v systému stínování: jednoduše odečte odražené světlo dříve, než dovolíte, aby došlo k difúznímu stínování. To znamená, že vysoce odrazné objekty budou vykazovat málo nebo žádné rozptýlené světlo, prostě proto, že do povrchu proniká jen málo nebo žádné světlo, které se většinou odráží. Konverzace je také pravdivá: pokud má objekt jasnou difuzi, nemůže být zvlášť reflexní.

Úspora energie tohoto druhu je důležitým aspektem fyzického stínování. Umožňuje umělci pracovat s hodnotami odrazivosti a albeda pro materiál bez náhodného porušení zákonů fyziky (což má tendenci vypadat špatně). Zatímco vynucování těchto omezení v kódu není nezbytně nutné pro vytváření dobrého vzhledu, slouží jako užitečná role jako “fyzický chůva”, který zabrání tomu, aby umělecká díla příliš ohýbala pravidla nebo se v různých světelných podmínkách stala nekonzistentní.

 

Elektricky vodivé materiály, zejména kovy, si zaslouží zvláštní zmínku v tomto bodě z několika důvodů.

Za prvé, mají tendenci být mnohem reflexivnější než izolátory (nevodiče). Vodiče obvykle vykazují odrazivost až 60-90%, zatímco izolátory jsou obecně mnohem nižší, v rozmezí 0-20%. Tyto vysoké odrazivosti brání tomu, aby se většina světla dostala do interiéru a rozptylu, což kovům dává velmi “lesklý” vzhled.

Za druhé, odrazivost na vodičích se někdy mění v celém viditelném spektru, což znamená, že jejich odrazy jsou zbarvené. Toto zbarvení odrazu je vzácné i mezi vodiči, ale dochází k některým každodenním materiálům (např. Zlato, měď a mosaz). Izolátory obecně nevykazují tento účinek a jejich odrazy jsou nezbarvené.

Konečně, elektrické vodiče obvykle absorbují spíše než rozptýlí jakékoliv světlo, které proniká do povrchu. To znamená, že v teorii vodiče nebudou vykazovat žádné důkazy o difúzním světle. V praxi se však na povrchu kovu často vyskytují oxidy nebo jiné zbytky, které rozptylují malé množství světla. Jedná se o dualitu mezi kovy a jenom o všechno ostatní, které vede k tomu, že některé renderingové systémy přijmou “přímočarost” jako přímý vstup. V takových systémech umělci specifikují míru, do jaké se materiál chová jako kov, spíše než specifikovat pouze albedo a reflexi explicitně. Toto je někdy upřednostňováno jako jednodušší prostředek k vytváření materiálů, ale není nutně charakteristickým rysem fyzického vykreslování.

 

V počítačové grafice slovo Fresnel odkazuje na odlišnou odrazivost, která se vyskytuje v různých úhlech. Konkrétně světlo, které dopadá na povrch v úhlu spásání, bude mnohem pravděpodobnější, že odráží světlo, které zasáhne povrch. To znamená, že objekty vykreslované správným efektem Fresnelu budou vypadat jako jasnější odrazy v blízkosti okrajů. Většina z nás už to chvíli známe a její přítomnost v počítačové grafice není nová. Nicméně, PBR shaders dělali populární několik důležitých oprav v hodnocení Fresnelových rovnic.

Prvním je to, že u všech materiálů se odrazivost stává celkovým úhlem pro spárování – “okraje” viděné na jakémkoli hladkém předmětu by měly působit jako perfektní (nezafarbené) zrcadla bez ohledu na materiál. Druhé pozorování vlastností Fresnelu spočívá v tom, že křivka nebo gradient mezi úhly se podstatně neliší od materiálu k materiálu. Kovy jsou nejvíce divergentní, ale mohou být analyticky analyzovány. Pro nás to znamená, že za předpokladu, že je žádoucí realismus, by umělá kontrola Fresnelova chování měla obecně být zkrácena spíše než rozšiřována. Nebo přinejmenším teď víme, kde nastavit výchozí hodnoty!

To je dobrá zpráva, protože může zjednodušit tvorbu obsahu. Stínovací systém nyní dokáže zvládnout efekt Fresnel téměř zcela samostatně; musí pouze konzultovat některé z již existujících vlastností materiálu, jako je lesk a odrazivost.

Pracovní postup PBR má umělce určit jedním nebo jiným způsobem “základní odrazivost”. To poskytuje minimální množství a barvu odraženého světla. Fresnelový efekt, jakmile se vykreslí, přidá odrazivost nad uměleckou hodnotu, která dosahuje až 100% (bílé) v úhlu pohledu. V podstatě obsah popisuje základnu a Fresnelovy rovnice přebírají odtud, takže povrch je více reflexní pod různými úhly podle potřeby.

Existuje však jeden velký kus, který stále chybí. Většina reálných povrchů má velmi malé nedostatky: drobné drážky, trhliny a hrudky příliš málo pro oko vidět a příliš malé, aby se zobrazily v normální mapě nějakého rozumného rozlišení. Přestože jsou neviditelná pouhým okem, tyto mikroskopické rysy ovlivňují difúzi a odraz světla.

Detail mikroskopie má nejvíce zřetelný vliv na reflexi (podpovrchová difúze není výrazně ovlivněna a nebude zde dále diskutována). Ve výše uvedeném schématu můžete vidět, že se paralelní čáry přicházejícího světla začínají odchylovat, když se odrážejí od hrubšího povrchu, protože každý paprsek zasáhne část povrchu jinou orientací. Analog v analoze míč / stěna by byl úsek skály nebo něco podobného nerovnoměrně: míč se stále odrazí, ale v nepředvídatelném úhlu. Stručně řečeno, čím hrubší se dostane povrch, tím více odražené světlo se bude lišit nebo se objeví “rozmazané”.

Vzhledem k tomu, že náš hypotetický stínící systém nyní zohledňuje mikroskopické detaily a přiměřeně šíří odražené světlo, musí pečlivě odrážet správné množství světla. Bohužel, mnoho starších vykreslování způsobilo to špatné, což odráželo příliš mnoho nebo příliš malé světlo, v závislosti na nerovnosti povrchu.

Když jsou rovnice správně vyváženy, vykreslovač by měl zobrazovat drsné povrchy s většími reflexními světlemi, které se objevují tlumenější než menší, ostřejší hladiny hladkého povrchu. Je to zjevný rozdíl v jasnosti, který je klíčový: oba materiály odrážejí to samé množství světla, ale hrubší povrch je rozkládá v různých směrech, zatímco hladší povrch odráží koncentrovanější “paprsek”:

 

A právě s výše uvedenými vědomostmi přicházíme k realizaci, velkou skutečností: mikroskopický lesk přímo ovlivňuje zdánlivý jas reflexe . To znamená, že umělec dokáže kreslit variace přímo do lesklé mapy – škrábance, zuby, obroušené nebo leštěné plochy, a to vše – a systém PBR bude zobrazovat nejen změnu tvaru odrazu, ale i relativní intenzitu. Žádná “maska ​​spec” / požadovaná změna odrazivosti!

To je významné, protože dvě skutečné světové veličiny, které jsou fyzicky příbuzné – mikroskopické detaily a odrazivost – jsou nyní poprvé řádně propojeny v uměleckém obsahu a procesu vykreslování. To je podobně jako vyvažovací akt difúze / reflexe popsaný dříve: mohli bychom oběma hodnotami vytvářet nezávisle, ale jelikož jsou související, úkol je jen obtížnější tím, že se snažíme s nimi zacházet zvlášť.

Dále bude zjišťování materiálů skutečného světa prokázáno, že hodnoty odrazivosti se nemění (viz předchozí část o vodivosti). Dobrým příkladem by byla voda a bahno: oba mají velmi podobnou odrazivost, ale protože bláto je poměrně drsné a povrch louže je velmi hladký, zdá se, že jsou velmi odlišní, pokud jde o jejich odrazy. Umělec, který vytváří takovou scénu v systému PBR, by rozlišoval především skrz mapy.

 

BRDF

  • Albedo
  • Specular
  • Roughness
  • Normal

Albedo je charakteristická barva objektu. Přesněji řečeno je bi-hemisferická odrazivost povrchu. Je to pohled nezávislý a je obecně nazýván difuzní.

Tradiční umělci používali k “ukládání” informací o osvětlení v rozptýlených strukturách, jako je okolní okluze, stín a reflexe.  Osvětlení je nyní odděleno a musí být odstraněno z albedo textury. Osvětlení ve hře bude všechno pocházet z grafického enginu.

  • Hodnota Albedo je mezi 32-243 v sRGB
  • Jedna z nejtmavších látek na zemi je uhlí, nejjasnější je čerstvý sníh
  • Čisté kovové předměty mají albedo o velikosti 0

  • Bílá barva R=243 G=243 B=242
  • Neutral 8 R=200 G=200 B=200
  • Neutral 65 R=160 G=160 B=160
  • Neutral 5 R=122 G=122 B=121
  • Neutral 35 R=85 G=85 B=85
  • Černá R=52 G=52 B=52

Zrcadlová struktura je pro umělce obtížně srozumitelná, protože je založena na koncepcích fyziky. Autorství je však jednoduché, protože pro něj není umělecká interpretace. Zrcadlová struktura řídí zrkadlovou odrazivost povrchu. Používá se jako vstup do rovnice Fresnel, která vypočítává, kolik světla se odráží.

Zrcadlová odrazivost povrchu závisí na jeho indexu lomu (IOR). Pokud jde o zrcadlovou odrazivost, povrchy běžně používané ve hře lze rozdělit do tří hlavních skupin:

  1. kov (vodič)
  2. nekovové (izolátory jako voda, sklo, kůže, dřevo, vlasy, kůže, plasty, kámen, beton)
  3. drahé kameny (polovodičové)

Drahokamy jsou neobvyklé a nebudou relevantní pro zapamatování mě . Kovy jsou vysoce reflektory pro všechny incidenty a sledování směry. Jejich zrcadlová odrazivost je barevná, protože jejich IOR mají tendenci se významně měnit s vlnovou délkou světla. Na opačném konci jsou nekovy, které jsou špatné reflektory při pohledu rovně dolů, ale při úhoře, které odrážejí většinu světla. Jejich zrcadlové odrazivost je monochromatické, protože jejich IOR se nemění s vlnovou délkou světla a může být přiblížena konstantou.

Abychom se vyhnuli umělcům, kteří se s IOR potýkají – což je obtížné pochopit (zejména u kovů s komplexním indexem lomu, který se liší vlnovou délkou světla), tým použil zrcadlovou odrazivost při normálním dopadu F0 (úhel dopadu 0 °, přímý pohled + světlo) jako vstup naší aproximace Fresnel Schlick.

F0 může být zobrazen jako barva. F0 je tedy obsah zrcadlové struktury (může být volán zrcadlově zbarvený) a může být získán z IOR s následující rovnicí: F0

Hlavní pokyny grafu (v lineárním RGB zde) jsou:

  •       Žádná hodnota není nižší než 0,02
  •       Hodnota nekovů je intuitivně nízká: 0,02-0,08
  •       Drahé kameny jsou 0,05-0,17
  •       Kovy mají vysokou zrcadlovou odrazivost: 0,5-1,0

Pokud není znám IOR z kovu, byla použita standardní hodnota 0,04 (kolem plastů). Lze pozorovat, že F0 kovu odpovídá charakteristické barvě kovu pod bílým světlem. Umožňuje umělcům snadno nastavit F0 pro nereferenční kov na základě toho, co si myslí, že je barva. Navíc kov nemá žádnou podpovrchovou interakci, a proto by měl mít černý albedo.

V praxi umělci zažili, že pro všechny nekovové by mohly být F0 ponechány na 0,04 bez jakékoliv vizuální změny. To je způsobeno omezením herního grafického stroje. Častou chybou nebylo nastavení černého albeda na kov (pro umělce se nezdá být jasné, že by mělo být černé). Většinou zrcadlový textur je malá struktura s plochými barvami.

Implicitní tvrzení v definici F0, které se zde používá, spočívá v tom, že odpovídá zrcadlové odrazivosti materiálu, který je ve styku se vzduchem (což je téměř vždy, ale ne vždy). Tato hodnota F0 není platná, pokud je například pod vodou pod vodou. V paměti zapamatujte hodně mokrých povrchů . (V tomto případě hodnota 1, která je IOR vzduchu v rovnici F0 – by měla být nahrazena hodnotou 1,33 – IOR vody).

U izolátorů hodnoty IOR nevyžadují barevné informace a mohou být zadávány přímo do indexového pole, zatímco pole zániku by mělo být nastaveno na 0. U kovů, které mají odrazy barev, je třeba zadat hodnotu pro červenou, zelenou a modré kanály. To lze provést pomocí vstupu na mapě (kde každý kanál mapy obsahuje správnou hodnotu). Hodnota zániku bude také třeba nastavit pro kovy, které obvykle najdete v knihovnách, které obsahují hodnoty IOR.

 

Drsnost textury je jedna z dvou nejdůležitějších textur, které umělci vytvoří – druhá je normální mapa. Když je povrch dokonale hladký, je to odraz ostrý (zrcadlové). Když je povrch drsný, odražené odražené světelné paprsky se odchylují od ideálního směru zrcadla a odrazy začínají být rozmazané. Rozložení odkloněných paprsků, které jsou důležité pro odraz, může být reprezentováno kuželem kolem ideálního směru zrcadla. Textura drsnosti ovládá clonu kužele a tím i rozmazanost odrazu. Čím hrubší je povrch, tím větší je kužel.

Avšak obsah struktury drsnosti závisí na konkrétní konvenci grafického motoru a na normální distribuční funkci použité v BRDF (což ztěžuje opětovné použití pro jiné grafické stroje). Například zřídka ukládá úhel otevření kužele.

Textový obsah drsnosti jako číselné hodnoty je pro umělce často obtížné interpretovat. Hodnoty drsnosti jsou interpretovány grafickým motorem, jako kdyby to byl úhel otevření kužele. Pro nepřímé osvětlení slouží k výběru mipmapu v cubemapu. Pro přímé osvětlení se přemění na zrcadlový výkon.

  •      0 – černá – znamená hrubou
  •      255 – bílá – znamená hladký

Ve skutečnosti je Normální stejný jako u tradičního modelu osvětlení, takže umělci byli velmi spokojeni s ovládáním a samozřejmě nepotřebovali vodítko.

Textura drsnosti souvisí s normální strukturou mnoha způsoby. Obě představují geometrické rysy povrchu, ale v různém měřítku. Normální rozptyl normální mapy bude mít vliv na strukturu drsnosti (nerovný povrch reprezentovaný normálním rozrušením by měl být například drsný). Další povrchové nedokonalosti jako škrábance, skvrny, póry apod. Jsou přidávány do struktury drsnosti. V aplikaci  Remember Me  je struktura drsnosti v alfa kanálu normální mapové struktury, která přiměla umělce, aby vytvořili tyto texty dohromady a ve stejném rozlišení.

 

Ambient

Okolní okluze (AO) představuje rozsáhlé osvětlené světlo a je obecně pečeno z 3D modelu.

Přidáním AO jako samostatné mapy na rozdíl od pečení do albeda a zrcadlové mapy umožňuje shader ji používat inteligentněji. Funkce AO například zabraňuje pouze difuznímu světlu okolního prostředí, nikoliv přímému difúznímu světlu z dynamických světel nebo odrazivých zrcadlení jakéhokoli druhu. AO by obecně nemělo být vynásobeno zrcadlovými nebo lesklými mapami. Vynásobení AO na zrcadlové mapě může být v minulosti běžnou technikou, aby se snížily nevhodné odrazy (např. Obloha odrážející okluštěný objekt), ale v dnešní době jsou odrazy místního prostoru na obrazovce mnohem lépe reprezentovat inter-objektové odrazy.

Mapa dutin reprezentuje světelné zábleskové světlo malé velikosti a je obecně pečeno z 3D modelu nebo z normální mapy. Mapa dutin by měla obsahovat pouze konkávní plochy (jámy) povrchu a nikoli konvexní oblasti, protože se vynásobí mapa dutin. Obsah by měl být většinou bílý s tmavšími částmi, které by představovaly zapuštěné plochy povrchu, kde by světlo mohlo být zachyceno. Mapa dutin ovlivňuje jak difuzní, tak i zrcadlově od okolních a dynamických světelných zdrojů.

 

Konfigurace pro hru Trainz TRS19

trainz-build 4.6
username "PBR Cliffs - Seasonal"
kind "groundtexture"
category-class "gl"
description "PBR environment texture"

thumbnails
{
0
{
image "dlsthumbnail.jpg"
width 240
height 180
}
}
texture "albedo.texture"
normal-texture "normal.texture"

texture-variants
{
0
{
diffuse-texture "albedo.texture"
normal-texture "normal.texture"
parameters-texture "parameters.texture"
}

3
{
diffuse-texture "albedo_winter.texture"
normal-texture "normal.texture"
parameters-texture "parameters_winter.texture"
}
}

season-selector
{
above-snow-line 1

branch-true
{
output-season 3
}

branch-false
{
output-season 0
}
}

kuid-table
{
}

 

 

 

 

Primary=albedo.tga
Alpha=albedo.tga
Tile=st

 

Primary=parameters.tga
Alpha=parameters.tga
Tile=st

 

Primary=normal.tga
Alpha=normal.tga
Tile=st
NormalMapHint=normalmap

Aby bylo možné správného fungování Alfa kanálu je zapotřebí vytvořit v každém RGB+A kanál a uložit s Alfa kanálem ve 32 bit.

texture-variants
{
0
{
diffuse-texture "albedo.texture"
normal-texture "normal.texture"
parameters-texture "parameters.texture"
}

3
{
diffuse-texture "albedo_winter.texture"
normal-texture "normal.texture"
parameters-texture "parameters.texture"
}
}

 

 

Více zde: http://www.unitsoft.alpinetrainz.cz/export-ze-substance-painter-do-ue4/

 

Leave A Reply