Poglavlje 11: Physically Based Rendering (PBR)

Poglavlje 11: Physically Based Rendering (PBR)


"PBR nije samo tehnika renderovanja -- to je fundamentalna promena u načinu na koji razmišljamo o materijalima. Umesto da pitamo 'kako ovo izgleda pod ovim svetlom?', pitamo 'od čega je ovo napravljeno?' -- i fizika se pobrine za ostatak."


Sadržaj poglavlja

  1. Zašto PBR?
  2. Teorija mikrofaseta (Microfacet Theory)
  3. Cook-Torrance BRDF
  4. Fresnel efekat
  5. Roughness -- hrapavost površine
  6. Metalness -- metalni karakter
  7. Konzervacija energije (Energy Conservation)
  8. Specular vs Diffuse refleksija
  9. Dielektrici vs Metali
  10. PBR workflow-ovi: Metal/Rough vs Spec/Gloss
  11. Image-Based Lighting (IBL)
  12. Rezime ključnih pojmova
  13. Dodatna literatura i linkovi

Uvod

Ovo je poglavlje u kome sve što smo do sada naučili -- od tekstura (poglavlje 5), preko svetlosnih modela i BRDF-a (poglavlje 10) -- konvergira u jedinstven, koherentan sistem. Physically Based Rendering nije samo "lepši shader" -- to je filozofija renderovanja koja garantuje fizički konzistentne rezultate bez obzira na uslove osvetljenja.

Ako ste ikada radili sa starijim rendering engine-ima, znate bol: napravite materijal koji izgleda savršeno u jednoj sceni, premestite ga u drugu sa drugačijim svetlom, i sve se raspada. PBR eliminiše taj problem iz korena.

U ovom poglavlju ćemo zaroniti duboko u matematiku i fiziku iza PBR-a, ali nikada nećemo izgubiti iz vida praktičnu primenu u Unreal Engine 5. Svaki koncept ćemo objasniti i intuitivno i formalno, jer je za istinsko razumevanje potrebno oboje.


Zašto PBR?

Svet pre PBR-a

Da bismo razumeli zašto je PBR revolucionaran, moramo prvo razumeti šta je bilo pre njega.

U ranim danima real-time renderovanja (i značajnom delu ere filmske produkcije), materijali su se kreirali pukim "pogađanjem". Tipičan workflow za kreiranje materijala izgledao je ovako:

  1. Uzmete diffuse mapu -- bazičnu boju objekta
  2. Dodate specular mapu -- gde i koliko jako površina reflektuje
  3. Tweakujete specular power/exponent -- koliko je oštro specularno svetlo
  4. Tweakujete ambient vrednost -- da objekat ne bude potpuno crn u senci
  5. Možda dodate environment map za refleksije
  6. Gledate rezultat, ne sviđa vam se, tweakujete dalje
  7. Ponovite korake 2-6 dok ne izgleda "okej"

Ovaj pristup imao je nekoliko fundamentalnih problema:

Pristrasnost prema jednom osvetljenju. Materijal koji izgleda kao polirani metal pod jednim svetlom može izgledati kao plastika pod drugim. Artist je bukvalno "pekao" karakteristike osvetljenja u sam materijal, umesto da definiše fizička svojstva površine.

Nekonzistentnost između artista. Svaki artist je imao svoj "recept" za kožu, metal, drvo, kamen. Dva artista koja rade na istom projektu mogli su proizvesti materijale koji izgledaju kao da pripadaju potpuno različitim svetovima. Bez fizičkih smernica, stil je bio potpuno subjektivan.

Kršenje zakona fizike. Materijal je mogao reflektovati više svetla nego što prima (kršenje konzervacije energije), imati Fresnel efekat koji fizički nema smisla, ili pokazivati specularnu refleksiju koja ne odgovara nijednom poznatom materijalu. Rezultat je bio da su scene, uprkos visokom tehničkom kvalitetu, često izgledale "nekako pogrešno" -- i gledalac možda nije mogao da artikuliše zašto, ali je podsvesno osećao da nešto nije u redu.

Nemogućnost ponovnog korišćenja. Materijal napravljen za outdoor scenu sa sunčevom svetlošću bio je praktično neupotrebljiv u indoor sceni sa veštačkim osvetljenjem. Isti materijal u dawn i noon sceni zahtevao je potpuno različite parametre. Ovo je drastično usporavalo produkciju.

Paradigmatski prelom

PBR nastaje kao odgovor na sve ove probleme. Ključna ideja je jednostavna ali revolucionarna:

Umesto da opisujemo kako površina izgleda, opisujemo šta površina jeste -- a renderer koristi zakone fizike da izračuna kako bi izgledala pod bilo kojim osvetljenjem.

Ovo znači da kada definišete PBR materijal, vi ne kažete "ovaj piksel treba da ima specular highlight ovog oblika i ove jačine". Vi kažete: "ova površina je napravljena od čelika sa roughness vrednošću 0.35". Renderer zatim koristi poznate fizičke osobine čelika i matematičke modele interakcije svetla sa površinom da izračuna tačan izgled pod bilo kojim uslovima.

Istorijski kontekst

PBR nije nastao preko noći. Evo kratke hronologije ključnih doprinosa:

Šta PBR zahteva

Da bi PBR radio korektno, moraju biti ispunjeni određeni preduslovi:

  1. Fizički korektan model osvetljenja -- BRDF koji poštuje zakone fizike (konzervacija energije, reciprocitet).
  2. Fizički zasnovane vrednosti materijala -- roughness, metalness, base color koji odgovaraju merenim vrednostima realnih materijala.
  3. Linearni color space workflow -- svi proračuni moraju biti u linearnom prostoru boja (pogledajte poglavlje 5 za detalje o gamma korekciji i sRGB).
  4. High Dynamic Range (HDR) osvetljenje -- svetlosni izvori moraju imati fizički korektan intenzitet i opseg.

UE5 obezbeđuje sve ovo "out of the box", ali je na vama kao artistu da razumete zašto su ove stvari važne i kako da pravilno koristite sistem.


Teorija mikrofaseta

Osnovna ideja

Pogledajte bilo koju površinu golim okom -- čak i ako deluje savršeno glatka, pod mikroskopom biste videli potpuno drugačiju sliku. Svaka realna površina ima mikroskopsku teksturu -- sitne neravnine, udubljenja, ispupčenja. Ove mikroskopske neravnine nazivamo mikrofasetama (microfacets).

Mikrofaseta teorija polazi od genijalnog pojednostavljenja:

Svaka mikrofaseta je savršeno ravno, savršeno reflektujuće mikroskopsko ogledalo.

Dakle, čak i "mat" površina poput kreča na zidu je, prema ovom modelu, sastavljena od miliona sićušnih savršenih ogledala -- samo su ta ogledala okrenuta u različitim pravcima. Kada su sva ogledala poravnata (kao kod poliranog metala), dobijate oštru, jasnu refleksiju. Kada su razasuta u svim pravcima (kao kod kreča), dobijate raspršeno, mat svetlo.

Veza sa roughness parametrom

Roughness parametar u PBR-u direktno kontroliše distribuciju orijentacija mikrofaseta:

Statistička distribucija

Matematički, ne modeliramo svaku pojedinačnu mikrofasetu (to bi bilo nemoguće -- ima ih milionima na svakom pikselu). Umesto toga, koristimo statističku distribuciju koja opisuje verovatnoću da mikrofaseta na datoj tački površine ima određenu orijentaciju.

Ova distribucija se naziva Normal Distribution Function (NDF) -- ne mešati sa Gausovom normalnom distribucijom iz statistike! U kontekstu PBR-a, NDF opisuje kako su normale mikrofaseta raspoređene oko makroskopske normale površine.

NDF: GGX/Trowbridge-Reitz

U industriji se koristi nekoliko različitih NDF modela, ali daleko najrašireniji je GGX (poznat i kao Trowbridge-Reitz distribucija). Unreal Engine 5 koristi upravo GGX kao default.

Matematička formulacija GGX NDF-a:

         α²
D(h) = ─────────────────────────
       π ((n·h)²(α² - 1) + 1)²

Gde je:

Zašto baš GGX?

GGX je pobedio konkurenciju iz nekoliko razloga:

  1. Duži "rep" distribucije. U poređenju sa starijim modelima (Blinn-Phong, Beckmann), GGX ima širi, postepniji pad specularnog highlight-a. Ovo bolje odgovara realnim merenjima -- specularni highlight na većini materijala nema oštar prekid, već postepeno bledi.

  2. Vizualno ubedljivije. GGX highlight-i izgledaju prirodnije ljudskom oku, posebno na srednjim roughness vrednostima (0.3--0.7) gde je razlika najuočljivija.

  3. Efikasan za računanje. Uprkos boljim rezultatima, GGX nije značajno skuplji za izračunavanje od jednostavnijih modela.

  4. Industrijski standard. Koriste ga praktično svi moderni engine-i i offline rendereri, što znači da materijali izgledaju konzistentno između različitih alata (Substance, Blender, Maya, UE5...).

Efekat samozaklanjanja (Self-Shadowing)

Mikrofasete ne postoje u vakuumu -- one su fizički deo površine i međusobno interaguju. Na hrapavijim površinama, mikrofasete mogu:

  1. Zaklanjati (shadowing) -- mikrofaseta blokira svetlost koja pokušava da dospe do susedne mikrofasete
  2. Maskirati (masking) -- mikrofaseta blokira reflektovanu svetlost susedne mikrofasete pre nego što stigne do posmatrača

Ovi efekti su posebno izraženi pri grazing uglovima (kada posmatrač ili svetlo gledate površinu pod veoma malim uglom). Geometry function (G) u Cook-Torrance BRDF-u modelira upravo ove efekte, ali o tome detaljnije u narednom odeljku.

Vizualna intuicija za mikrofasete

Zamislite sledeći eksperiment: uzmite hiljadu malih ogledalca i rasporedite ih na ravnoj ploči.

Scenario A (Roughness ≈ 0): Sva ogledalca leže potpuno ravno. Kada obasjate ploču usmerenim svetlom, vidite jednu jasnu refleksiju -- praktično savršeno ogledalo.

Scenario B (Roughness ≈ 0.3): Svako ogledalce je malo nagnuto u nasumičnom pravcu, ali nikada više od ~15 stepeni od horizontale. Refleksija postoji, ali je blago raspršena -- vidite sjajnu tačku umesto oštre refleksije.

Scenario C (Roughness ≈ 0.7): Ogledalca su značajno nagnuta, mnoga i do 45+ stepeni. Refleksija je veoma raspršena -- svetlost se rasipa u širokom opsegu pravaca.

Scenario D (Roughness ≈ 1.0): Ogledalca su potpuno haotično raspoređena. Refleksija je toliko raspršena da ne možete identifikovati nikakav specularni highlight -- izgleda kao da površina jednako reflektuje u svim pravcima (što je zapravo definicija difuzne refleksije).

Ova mentalna slika je suština microfacet teorije -- i jedna od najelegantnijih ideja u computer graphics-u.


Cook-Torrance BRDF

Kontekst

U poglavlju 10 smo detaljno objasnili šta je BRDF (Bidirectional Reflectance Distribution Function) i kako se koristi u rendering jednačini. Sada ćemo se fokusirati na konkretni BRDF model koji Unreal Engine 5 koristi za specularnu komponentu PBR osvetljenja: Cook-Torrance BRDF.

Cook-Torrance model, originalno predstavljen 1982. godine, ostaje -- uz različite modifikacije i unapređenja -- standard u real-time PBR renderovanju. Njegov uspeh leži u tome što elegantno kombinuje tri fizička fenomena u jedan koherentni matematički model.

Kompletni PBR BRDF

Pre nego što uđemo u detalje Cook-Torrance modela, važno je razumeti celokupnu strukturu PBR BRDF-a. Kompletni BRDF se deli na dve komponente:

f(l, v) = f_diffuse + f_specular

Diffuse komponenta -- modelira svetlost koja ulazi u površinu, rasipa se unutar materijala, i izlazi nazad. Za ovu komponentu UE5 koristi modifikovani Lambertian model:

f_diffuse = c_base / π

gde je c_base bazna boja materijala (Base Color). Faktor 1/π obezbeđuje korektnu normalizaciju energije.

Specular komponenta -- modelira svetlost koja se direktno reflektuje od površine mikrofaseta. Ovo je Cook-Torrance deo.

Cook-Torrance formula

Specularni deo BRDF-a definisan je kao:

                D(h) · F(v, h) · G(l, v, h)
f_specular = ─────────────────────────────────
               4 · (n · l) · (n · v)

Gde je:

Svaki od tri člana u brojiocu ima specifičnu fizičku ulogu. Razmotrimo ih redom.

D -- Normal Distribution Function (NDF)

NDF smo već detaljno objasnili u prethodnom odeljku. U kontekstu Cook-Torrance formule, D(h) odgovara na pitanje:

"Koliki procenat mikrofaseta na ovoj tački površine ima normalu poravnatu sa halfway vektorom h?"

Zašto halfway vektor? Zato što samo mikrofasete čija normala tačno odgovara halfway vektoru mogu reflektovati svetlo iz pravca L u pravac V. Sve ostale mikrofasete doprinose refleksiji u nekom drugom pravcu.

Ponavljamo GGX formulu za kompletnost:

         α²
D(h) = ─────────────────────────
       π ((n·h)²(α² - 1) + 1)²

Uticaj na vizualni rezultat: D kontroliše oblik i veličinu specularnog highlight-a. Nizak roughness daje mali, koncentrisani highlight. Visok roughness daje širok, difuzan highlight.

Grafički prikaz uticaja D na specularni highlight:

Roughness 0.0:    *        (tačkast, izuzetno jak)
Roughness 0.2:   ***       (mali krug, jak)
Roughness 0.5:  *****      (srednji krug, umeren)
Roughness 0.8: *********   (veliki krug, slab)
Roughness 1.0: *********** (praktično nevidljiv kao diskretni highlight)

F -- Fresnel Term

Fresnel efekat opisuje fundamentalno svojstvo elektromagnetnog zračenja: količina svetlosti koja se reflektuje sa površine zavisi od ugla pod kojim svetlost pada na površinu.

Fresnelov zakon je tačan, ali kompleksan za izračunavanje (uključuje polarizaciju, kompleksne indekse prelamanja...). Za real-time rendering koristimo Schlick-ovu aproksimaciju:

F(v, h) = F0 + (1 - F0) · (1 - v·h)⁵

Gde je:

O Fresnel efektu ćemo mnogo detaljnije govoriti u posebnom odeljku. Za sada, bitno je razumeti da F kontroliše koliko svetlosti se reflektuje vs. koliko prolazi u materijal, i da ta količina zavisi od ugla posmatranja.

Uticaj na vizualni rezultat: F je razlog zašto vidite refleksije na ivicama objekata -- čak i mat površine postaju reflektivne pri grazing uglovima. Ovo je posebno uočljivo na vodi, staklu, lakiranim površinama.

G -- Geometry Function (Shadowing-Masking)

Geometry function modelira dva fizička fenomena koja nastaju zbog mikrogeometrije površine:

  1. Shadowing -- mikrofaseta je u senci jer je susedna mikrofaseta blokira od izvora svetlosti
  2. Masking -- mikrofaseta reflektuje svetlo, ali reflektovano svetlo ne može da stigne do posmatrača jer ga blokira susedna mikrofaseta

UE5 koristi Smith model za G, specifično formulaciju poznatu kao "Smith Joint GGX" (ili "Height-Correlated Smith GGX"):

G(l, v) = G₁(l) · G₁(v)

gde je svaki faktor:

                      2(n · x)
G₁(x) = ─────────────────────────────────────
         (n · x) + √(α² + (1 - α²)(n · x)²)

(x je ili l ili v)

Nešto optimizovanija varijanta koju UE5 zapravo koristi je Schlick-GGX aproksimacija, gde se α remapira kao:

k = (roughness + 1)² / 8    (za direktno osvetljenje)
k = roughness² / 2          (za IBL)

              n · x
G₁(x) = ────────────────
         (n · x)(1 - k) + k

Uticaj na vizualni rezultat: G sprečava da ivice objekata "eksplodiraju" u prejakom specularnom sjaju. Bez G, pri grazing uglovima bi Fresnel term proizveo nerealno jake refleksije, jer ne bi bio uračunat gubitak svetla usled samozaklanjanja mikrofaseta. G takođe obezbeđuje da hrapavije površine budu ukupno tamnije pri grazing uglovima, što je fizički korektno ponašanje.

Imenilac: 4(n·l)(n·v)

Ovaj faktor nije arbitraran -- on je matematički neophodan za korektnu transformaciju između mikroskopskog i makroskopskog merenja refleksije.

Intuitivno: NDF nam daje distribuciju mikrofaseta, ali mi renderujemo makroskopsku površinu. Projekcija mikrofaseta na makroskopsku ravan zahteva korekcioni faktor koji zavisi od uglova upada (n·l) i posmatranja (n·v).

Bez ovog imenioca, BRDF ne bi bio energetski konzistentan -- ukupna reflektovana energija bi zavisila od pravca posmatranja na fizički nesmislen način.

Kombinovani efekat

Lepota Cook-Torrance modela je u tome kako tri komponente sarađuju:

Situacija D F G Rezultat
Nizak roughness, normalan ugao Visok Nizak (F0) Visok (~1) Jak, oštar specular
Nizak roughness, grazing ugao Nizak Visok (~1) Nizak Umeren specular (G kompenzuje F)
Visok roughness, normalan ugao Nizak i širok Nizak (F0) Visok (~1) Slab, raširen specular
Visok roughness, grazing ugao Vrlo nizak Visok (~1) Vrlo nizak Gotovo ništa (G dominira)

Ovakvo ponašanje tačno odgovara realnim merenjima materijala, što je potvrda fizičke korektnosti modela.

Napomena o implementaciji u UE5

UE5 koristi određene optimizacije i varijacije u odnosu na "udžbeničku" Cook-Torrance formulu:

Za većinu artista, ovi implementacioni detalji nisu bitni za svakodnevni rad -- ali su apsolutno ključni ako želite da razumete zašto vaši materijali izgledaju kako izgledaju, ili ako trebate da debugujete neočekivano ponašanje.


Fresnel efekat

Fizička pozadina

Augustin-Jean Fresnel je početkom 19. veka formulisao jednačine koje opisuju kako se elektromagnetni talasi (uključujući vidljivu svetlost) ponašaju na granici dva medijuma sa različitim indeksima prelamanja.

Ključni zaključak je iznenađujuće intuitivan kada ga jednom razumete:

Što je ugao pod kojim svetlost pada na površinu manji (bliži grazing uglu), to se više svetlosti reflektuje umesto da prodire u materijal.

Ovo je nešto što svi svakodnevno opažamo, ali retko svesno registrujemo:

Matematika: tačne Fresnel jednačine

Tačne Fresnel jednačine razlikuju s-polarizovanu i p-polarizovanu komponentu svetlosti:

       n₁ cos θᵢ - n₂ cos θₜ
Rs = (─────────────────────────)²
       n₁ cos θᵢ + n₂ cos θₜ

       n₁ cos θₜ - n₂ cos θᵢ
Rp = (─────────────────────────)²
       n₁ cos θₜ + n₂ cos θᵢ

Za nepolarizovanu svetlost:

F = (Rs + Rp) / 2

Gde je:

Za metale, situacija je dodatno komplikovana jer je indeks prelamanja kompleksan broj (ima realnu i imaginarnu komponentu, gde imaginarna komponenta predstavlja apsorpciju svetlosti).

Schlick aproksimacija

Pošto su tačne Fresnel jednačine skupe za izračunavanje u real-time-u (posebno za metale), Christophe Schlick je 1994. predložio elegantnu aproksimaciju koja daje izvanredne rezultate:

F(θ) = F0 + (1 - F0)(1 - cos θ)⁵

Gde je:

Zašto eksponent 5?

Schlick je eksperimentalno utvrdio da stepen 5 daje najbolji kompromis između tačnosti i jednostavnosti za većinu realnih materijala. Zanimljivo, neki engine-i koriste stepen koji nije tačno 5 za specifične materijale, ali za generalni slučaj, 5 je odličan izbor i praktično industrijski standard.

F0 -- bazna reflektivnost

F0 (čita se "F-nula" ili "F-zero") je jedan od najvažnijih koncepata u PBR-u. Predstavlja koliki procenat svetlosti površina reflektuje kada svetlost pada potpuno normalno (pod uglom od 90° u odnosu na površinu, ili 0° u odnosu na normalu).

F0 vrednosti za uobičajene materijale

Materijal F0 (linearna vrednost) F0 (sRGB priblizno)
Voda 0.02 0.15
Plastika / Staklo 0.04 0.22
Drvo 0.04 0.22
Koža (skin) 0.028 0.18
Dijamant 0.17 0.45
Gvožđe (Iron) 0.56 0.77
Bakar (Copper) (0.95, 0.64, 0.54) (0.98, 0.82, 0.76)
Zlato (Gold) (1.00, 0.71, 0.29) (1.00, 0.86, 0.57)
Aluminijum (0.91, 0.92, 0.92) (0.96, 0.96, 0.96)
Srebro (Silver) (0.95, 0.93, 0.88) (0.98, 0.97, 0.95)
Titan (Titanium) (0.54, 0.50, 0.44) (0.76, 0.73, 0.69)

Ključno zapažanje za dielektrike: Gotovo svi nemetalni materijali imaju F0 oko 0.02 -- 0.05 (2% do 5%). Ovo je razlog zašto UE5 defaultno koristi F0 = 0.04 za dielektrike i zašto specular parametar u UE5 materijalu retko treba menjati sa defaultne vrednosti od 0.5 (što mapira na F0 = 0.04).

Ključno zapažanje za metale: Metali imaju dramatično viši F0, tipično 0.5 -- 1.0. Štaviše, F0 za metale je obojeno -- zlato reflektuje više crvene i zelene nego plave svetlosti, što mu daje karakterističnu zlatnu boju. Ovo je fundamentalna razlika između metala i dielektrika u PBR-u.

Vizualni uticaj Fresnel efekta

Fresnel efekat je jedan od onih "nevidljivih" detalja koji dramatično doprinose realizmu scene. Bez njega:

Jedan od najčešćih znakova nekorektnog PBR-a je upravo odsustvo ili prekomerni Fresnel efekat. Ako vaš materijal izgleda "ravno" čak i na zakrivljenim površinama, proverite da li je Fresnel pravilno implementiran. Ako ivice objekata "svetle" previše, možda imate prevelik specular parametar.

Fresnel u UE5

U UE5 Material Editor-u, Fresnel efekat je automatski uračunat u PBR shader -- ne morate ga ručno dodavati. Specular parametar materijala kontroliše skaliranje F0 za dielektrike:

F0_actual = 0.08 * Specular

Sa defaultnim Specular = 0.5:

F0_actual = 0.08 * 0.5 = 0.04

Što odgovara tipičnom dielektriku (plastika, staklo, drvo...).

Za metale, F0 dolazi direktno iz Base Color parametra -- o tome više u odeljku o Metalness-u.


Roughness -- hrapavost površine

Šta roughness zapravo kontroliše

Roughness je verovatno najintuitivniji parametar u PBR-u. Kontroliše koliko je površina "hrapava" na mikroskopskom nivou, što se vizualno manifestuje kao:

Roughness skala

0.0 ──────── 0.25 ──────── 0.5 ──────── 0.75 ──────── 1.0
 │             │             │             │             │
Savršeno    Polirani     Brušeni      Hrapav         Potpuno
ogledalo     metal      metal/sjaj   beton/drvo       mat
             sjajni       plastika    tkanina         kreda
            automobil                 koža           

Primeri materijala po roughness vrednosti

Roughness Materijali Vizualni opis
0.0 -- 0.1 Ogledalo, hrom, mirna voda Savršena ili gotovo savršena refleksija
0.1 -- 0.3 Poliran metal, lak automobila, glazirana keramika Jasne refleksije sa blagim blurring-om
0.3 -- 0.5 Plastika, polirano drvo, koža Vidljiv specular ali raspršen
0.5 -- 0.7 Neobrađeno drvo, beton, opeka Slab specular, dominantno diffuse
0.7 -- 0.9 Tkanina, guma, kreda Praktično čist diffuse izgled
0.9 -- 1.0 Pesak, prah, neobrađena glina Potpuno mat, nema vidljivog speculara

Roughness vs Glossiness

U nekim engine-ima i alatima (npr. Substance Painter podržava oba), srešćete termin Glossiness umesto Roughness. Veza je trivijalna:

Glossiness = 1 - Roughness
Roughness = 1 - Glossiness

To je bukvalno samo invertovana skala:

UE5 koristi Roughness konvenciju. Ako importujete Glossiness mape iz drugog alata, morate ih invertovati (node OneMinus u Material Editor-u ili direktna inverzija u Photoshop-u/GIMP-u).

Roughness mape

U praksi, materijali nemaju uniforman roughness na celoj površini. Roughness mapa (pogledajte poglavlje 5 za detalje o teksturama) je grayscale tekstura gde:

Primeri varijacija roughness-a na jednom materijalu:

Veza roughness-a i microfacet distribucije

Matematički, roughness direktno kontroliše parametar α u GGX NDF-u:

α = roughness²

Ovaj kvadratni remap nije arbitraran -- on obezbeđuje da perceptualna promena roughness-a bude linearnija. Bez remapiranja, razlika između roughness 0.0 i 0.1 bi bila dramatično veća nego razlika između 0.9 i 1.0, što bi bilo neintuitvno za artiste.

Sa α² remapiranjem:

Česte greške sa roughness-om

  1. Uniforman roughness na celom objektu. Realni materijali gotovo nikada nemaju uniforman roughness. Dodajte varijacije!

  2. Previsok roughness za reflektivne materijale. Čest polirani metal ima roughness 0.1-0.3, ne 0.5+.

  3. Roughness 0.0 svuda. Savršeno ogledalo ne postoji u realnosti. Koristite 0.0 samo za ogledala i hromirana ogledala; za većinu "glatkih" materijala koristite bar 0.05-0.1.

  4. Zaboravljanje da voda smanjuje roughness. Mokre površine imaju niži roughness nego suve verzije istog materijala (voda popunjava mikropukotine).


Metalness -- metalni karakter

Fundamentalna razlika metala i nemetala

Metalness parametar izgleda jednostavno -- slider od 0 do 1 -- ali iza njega leži jedna od najvažnijih fizičkih distinkcija u nauci o materijalima.

Na atomskom nivou, metali i dielektrici (nemetali) interaguju sa svetlošću na fundamentalno različite načine:

Metali imaju slobodne elektrone koji mogu da apsorbuju i re-emituju fotone svetlosti. Ovo znači:

Dielektrici (nemetali -- plastika, drvo, kamen, koža, staklo...) nemaju slobodne elektrone u ovom smislu:

Kako Metalness kontroliše shader

U PBR sistemu sa Metal/Roughness workflow-om, Metalness parametar funkcioniše kao prekidač koji fundamentalno menja kako shader interpretira Base Color:

Kada je Metalness = 0 (dielektrik):

Kada je Metalness = 1 (metal):

Za vrednosti između 0 i 1, shader linearno interpolira između ova dva ponašanja. Međutim...

Metalness je binarni parametar

Uprkos tome što je slider od 0 do 1, metalness u praksi treba da bude ili 0 ili 1. Nema materijala u prirodi koji je "50% metal". Materijal je ili metal, ili nije.

Jedini izuzetak je na granicama između metalnih i nemetalnih regiona u teksturi. Na primer, zarđali čelik: čist čelik je metal (metalness = 1), rđa je oksid (dielektrik, metalness = 0), a na granici postoji uska tranziciona zona gde metalness prolazi od 0 do 1 kroz par piksela. Ova tranzicija je posledica ograničene rezolucije teksture, ne fizičke realnosti.

Vrednosti poput 0.3 ili 0.7 za metalness su gotovo uvek greška. One proizvode materijal koji ne odgovara nijednom realnom materijalu -- previše spekularan za dielektrik, ali sa nefizičkom difuznom komponentom za metal.

Vizualna posledica pogrešnog metalness-a

Jedan od najčešćih vizualnih artefakata u PBR-u nastaje kada metal ima metalness < 1:

Zamislite zlato sa metalness 0.5:

Rezultat je materijal koji izgleda "čudno" i "jeftino" -- nije dovoljno reflektivan da izgleda kao pravi metal, ali ima čudnu obojenu difuznu komponentu koja ne odgovara nijednom realnom materijalu.

Base Color smernice za metale vs dielektrike

Za dielektrike:

Za metale:

Metalness mape u praksi

Metalness mapa je grayscale tekstura gde:

Tipični primeri:


Konzervacija energije

Fundamentalni zakon

Konzervacija energije je jedan od najosnovnijih zakona fizike, i u kontekstu renderovanja kaže:

Površina ne može reflektovati više svetla nego što prima.

Ovo zvuči očigledno, ali pre PBR-a, ovo pravilo je rutinski kršeno u real-time renderovanju. Artist bi mogao postaviti jak diffuse i jak specular, i materijal bi "emitovao" više svetlosne energije nego što prima. Rezultat je bio preosvetljena scena koja je izgledala nerealno.

Kako PBR obezbeđuje konzervaciju energije

U PBR-u, konzervacija energije se obezbeđuje na dva nivoa:

1. Difuzno-spekulrna ravnoteža

Za svaki foton koji pogodi površinu, postoje samo dve mogućnosti:

Ovo znači:

k_diffuse + k_specular ≤ 1

U praksi, Fresnel jednačina nam daje koliko svetla se spekulrno reflektuje (F), a ostatak (1 - F) ulazi u materijal za potencijalnu difuznu refleksiju:

diffuse_contribution = (1 - F) * base_color / π
specular_contribution = Cook-Torrance BRDF

Faktor (1 - F) ispred difuzne komponente je ključan -- on automatski smanjuje difuzni doprinos kako se spekulrna refleksija povećava (npr. pri grazing uglovima, gde Fresnel daje visoku reflektivnost, difuzna komponenta se proporcionalno smanjuje).

Za metale, ovaj mehanizam prirodno eliminiše difuznu komponentu: pošto metali imaju F0 blizu 1.0, faktor (1 - F) je blizu nule za sve uglove.

2. Roughness i intenzitet highlight-a

Kada povećavate roughness, specularni highlight se širi na veću površinu. Ali -- i ovo je ključno -- ukupna količina reflektovane specularme energije ostaje ista. To znači da se energija "razmazuje" na veću površinu, pa je svaka tačka unutar highlight-a slabija.

Matematički, NDF je normalizovana tako da integral preko cele hemisfere daje konstantnu vrednost:

∫ D(h) (n·h) dω = 1   (za svaki roughness)

Ovo znači:

Ukupna energija je ista u oba slučaja -- samo je distribucija drugačija.

Vizualna demonstracija

Zamislite niz sfera istog materijala sa roughness-om od 0.0 do 1.0:

Roughness:  0.0     0.2     0.4     0.6     0.8     1.0

Specular:    *      .**      ..*.     ....    .....   .......
            (*)    (..*.)   (..**.)  (.....)  (.....) (.......)
             *      .**      ..*.     ....    .....   .......

Intenzitet:  ■■■■    ■■■      ■■       ■       ▪       ·

U oba slučaja, ako integralite intenzitet preko cele površine highlight-a, dobili biste istu ukupnu energiju. Ovo je konzervacija energije na delu.

Česta greška: kršenje konzervacije u custom shader-ima

Ako pravite custom shading modele u UE5 (pogledajte Custom Shading Model dokumentaciju), morate ručno obezbediti konzervaciju energije. UE5-ov default PBR shader to radi automatski, ali custom shaderi nemaju tu garanciju.

Simptomi kršenja konzervacije energije:


Specular vs Diffuse refleksija

Fizička osnova

Da bismo istinski razumeli PBR, moramo razumeti šta se fizički dešava kada svetlost pogodi površinu. Postoje dva fundamentalno različita procesa:

Specular (površinska) refleksija

Specularma refleksija se dešava na samoj površini materijala -- tačnije, na granici između dva medijuma (npr. vazduh-staklo, vazduh-metal).

Fizički proces:

  1. Foton dolazi do granice dva medijuma
  2. Elektromagnetno polje fotona interaguje sa elektronima na površini
  3. Foton se "odbija" nazad -- menja pravac ali ostaje u istom medijumu
  4. Pravac refleksije zavisi od normale mikrofasete na mestu udara

Ključne karakteristike specularme refleksije:

Diffuse (podpovršinska) refleksija

Difuzna refleksija je dramatično drugačiji proces:

  1. Foton prolazi kroz površinu i ulazi u materijal
  2. Unutar materijala, foton nailazi na mikroskopske nehomogenosti (pigmente, vazdušne mehuriće, kristalne granice...)
  3. Na svakoj nehomogenosti, foton menja pravac -- "rasipa" se
  4. Nakon višestrukog rasipanja, neki fotoni izlaze nazad iz površine
  5. Izlazni pravac je praktično nasumičan (nezavisan od upadnog pravca)

Ključne karakteristike difuzne refleksije:

Zašto je drvo braon?

Ovaj primer savršeno ilustruje razliku:

  1. Bela svetlost (sadrži sve talasne dužine) pada na drvenu površinu
  2. ~4% svetlosti se spekulrno reflektuje sa površine → beli specular highlight (neobojeno)
  3. ~96% svetlosti ulazi u drvo
  4. Unutar drveta, plavi i zeleni fotoni se pretežno apsorbuju od strane hemijskih jedinjenja u drvetu (lignin, celuloza)
  5. Crveni i žuti fotoni preživljavaju rasipanje i izlaze nazad → braon difuzna boja

Dakle: specular highlight na drvetu je beo (kao na svim dielektricima), a difuzna boja je braon. Oba procesa se dešavaju istovremeno, na istoj površini.

Zašto je zlato zlatno?

Za metal, priča je drugačija:

  1. Bela svetlost pada na zlatnu površinu
  2. Svetlost interaguje sa slobodnim elektronima na površini zlata
  3. Plavi fotoni se pretežno apsorbuju (slobodni elektroni zlata efikasno apsorbuju visoke frekvencije)
  4. Crveni i žuti fotoni se reflektuju → zlatna spekularna refleksija
  5. Nema difuzne komponente -- svetlost ne prodire u metal

Dakle: zlato ima obojenu specularnu refleksiju i nema difuznu refleksiju. Boja zlata dolazi isključivo od selektivne specularme refleksije.

Dijagram oba procesa

SPECULAR REFLEKSIJA (dielektrik):

    svetlo ↓          ↑ reflektovano (~4%)
           \         /
    --------\-------/---------  ← površina
             \     /
              (odbija se na površini, ne ulazi)


DIFUZNA REFLEKSIJA (dielektrik):

    svetlo ↓                    ↑ difuzno (~96% minus apsorpcija)
           \                   /
    --------\-----------------/---------  ← površina
             \   scatter     /
              → ○ → ○ → ○ →    ← višestruko rasipanje unutar materijala
                 ↓ ○ ↑        ← (neki fotoni se apsorbuju → boja)


METAL (samo specular):

    svetlo ↓          ↑ reflektovano (60-95%, obojeno)
           \         /
    --------\-------/---------  ← površina
             \     /
              (odbija se, ne ulazi; boja od selektivne apsorpcije)
             xxxxxxxxx  ← svetlost ne prodire dalje od ~nm

Dielektrici vs Metali

Detaljna poređenja

Sada kada razumemo fiziku iza specularme i difuzne refleksije, možemo napraviti sveobuhvatan pregled razlika između metala i dielektrika:

Svojstvo Dielektrici Metali
Primeri Plastika, drvo, kamen, koža, staklo, voda, tkanina, keramika Gvožđe, bakar, zlato, srebro, aluminijum, titan, hrom
Difuzna refleksija DA -- ovo je primarni izvor boje NE -- ne postoji
Spekularna refleksija DA -- ali slaba pri normalnom uglu (~2-5%) DA -- i to je jedini tip refleksije (50-100%)
Boja speculara Bela (neobojeno) Obojena (boja metala)
Izvor boje Difuzna refleksija (selektivna apsorpcija unutar materijala) Spekulrna refleksija (selektivna apsorpcija na površini)
F0 (reflektivnost pri 0°) 0.02 -- 0.05 (nizak) 0.5 -- 1.0 (visok)
F0 boja Monohromatska (ista za R, G, B) Može biti obojeno (različite vrednosti za R, G, B)
Fresnel efekat Dramatičan (od ~4% do ~100%) Prisutan ali manje izražen (od ~70% do ~100%)
Base Color u PBR-u Albedo (difuzna boja) F0 (spekularna reflektivnost)
Metalness 0 1
Provodljivost Električni izolator Električni provodnik
Indeks prelamanja Realan broj (1.0 -- 2.5 tipično) Kompleksan broj (ima apsorpcionu komponentu)

Granični slučajevi i izuzeci

Kao i sve u fizici, postoje granični slučajevi koji ne padaju čisto u jednu kategoriju:

Poluprovodnici (silicijum, germanijum): Imaju svojstva između metala i dielektrika. U PBR-u ih obično tretiramo kao metale sa visokim roughness-om.

Oksidovani metali (rđa, patina): Oksid je dielektrik! Zarđali čelik treba da ima metalness = 0 na mestima gde je rđa. Ovo je česta greška -- artisti često ostavljaju metalness = 1 za ceo objekat, uključujući zarđale delove.

Farebni metali: Farba na metalu je dielektrik. Samo gde je farba oštećena i metal proviruje treba biti metalness = 1.

Staklo i dijamant: Iako imaju viši F0 od većine dielektrika, oni su i dalje dielektrici (metalness = 0). Njihova visoka reflektivnost se kontroliše specular parametrom, ne metalness-om.

Ugljenik u formi grafita: Tehnički provodnik, ali u praksi se renderuje kao dielektrik sa veoma tamnim base color-om.

Praktični test za identifikaciju

Kada niste sigurni da li je materijal metal ili dielektrik u kontekstu PBR-a, postavite sebi ovo pitanje:

"Da li ovaj materijal provodi električnu struju?"

Ako da → metal (metalness = 1) Ako ne → dielektrik (metalness = 0)

Ovo je pojednostavljen test koji radi u 99% slučajeva. Izuzetak su poluprovodnici i egzotični materijali, ali oni su retki u tipičnim game art scenama.


PBR workflow-ovi

Dva pristupa

U PBR industriji postoje dva ustaljeno korišćena workflow-a za definisanje materijala. Oba su fizički validna i mogu proizvesti identične rezultate -- razlikuju se u tome kako artist parametrizuje materijal.

Metal/Roughness workflow

Ovo je workflow koji UE5 koristi kao default, i koji je de facto standard u game industriji.

Parametri:

Mapa/Parametar Tip Opis
Base Color RGB Albedo za dielektrike, F0 za metale
Metalness Grayscale 0 = dielektrik, 1 = metal
Roughness Grayscale 0 = savršeno glatko, 1 = potpuno hrapavo
Normal Map RGB Perturbacija normale površine

Prednosti:

Mane:

Specular/Glossiness workflow

Alternativni workflow koji je bio popularniji u ranijim PBR implementacijama i koji neki alati još uvek podržavaju.

Parametri:

Mapa/Parametar Tip Opis
Diffuse / Albedo RGB Difuzna boja (za metale treba da bude crna)
Specular RGB F0 reflektivnost (obojeno za metale, ~0.04 za dielektrike)
Glossiness Grayscale 0 = potpuno hrapavo, 1 = savršeno glatko (invertovan roughness)
Normal Map RGB Perturbacija normale površine

Prednosti:

Mane:

Zašto je Metal/Roughness pobedio

Metal/Roughness workflow je postao industrijski standard iz nekoliko praktičnih razloga:

  1. Manje tekstura = manje memorije. U AAA igrama sa hiljadama materijala, ušteda jedne teksture po materijalu je značajna.

  2. Teže je napraviti greške. Metalness je de facto binarni parametar, i Base Color automatski menja ulogu na osnovu metalness-a. Artist ne može slučajno staviti jak diffuse na metal.

  3. Substance workflow. Substance Designer i Substance Painter (sada Adobe Substance), koji su de facto standard za kreiranje PBR tekstura, koriste Metal/Roughness kao primarni workflow.

  4. Industrijski momentum. Kada su UE4, Unity i Frostbite usvojili Metal/Roughness, ostatak industrije ih je pratio. Artisti su se prilagodili, tutoriali su napisani, pipeline-i su postavljeni.

Konverzija između workflow-ova

Ako morate konvertovati materijale između dva workflow-a:

Metal/Rough → Spec/Gloss:

if metalness == 1:
    diffuse = (0, 0, 0)       // crno -- metal nema diffuse
    specular = base_color      // base color metala je F0
else:
    diffuse = base_color       // base color dielektrika je albedo
    specular = (0.04, 0.04, 0.04)  // default F0 za dielektrike
glossiness = 1 - roughness

Spec/Gloss → Metal/Rough:

if diffuse ≈ (0, 0, 0):           // ako je diffuse crn, verovatno metal
    metalness = 1
    base_color = specular          // F0 postaje base color
else:
    metalness = 0
    base_color = diffuse           // diffuse postaje base color
roughness = 1 - glossiness

U praksi, ova konverzija nije uvek savršena jer se informacije mogu izgubiti, posebno na graničnim slučajevima. Substance alati mogu obaviti ovu konverziju automatski i pametnije od naivnog algoritma iznad.

UE5 specifičnosti

UE5 koristi Metal/Roughness kao primarni workflow, ali nudi i neke dodatne parametre:

UE5 takođe podržava Specular/Glossiness workflow kroz Custom Material Expression i konverzione node-ove, ali to nije preporučeni pristup za nove projekte.


Image-Based Lighting (IBL)

Motivacija

Do sada smo uglavnom razmatrali direktno osvetljenje -- svetlost koja putuje direktno od izvora svetlosti do površine i zatim do kamere. Ali u realnom svetu, najveći deo osvetljenja je indirektan -- svetlost koja se odbija od drugih površina pre nego što stigne do objekta koji posmatramo.

Zamislite objekat na otvorenom: osim direktne sunčeve svetlosti, osvetljen je i svetlošću neba (plava boja), refleksijama od okolnih zgrada, zemlje, oblaka... Ovo indirektno osvetljenje je ono što sprečava da senke budu potpuno crne i što daje sceni "dubinu" i "atmosferu".

Image-Based Lighting je tehnika koja koristi slike okruženja (environment maps) da simulira ovo indirektno osvetljenje. Umesto da postavljamo stotine virtualnih svetala da simuliramo nebo, okolne zgrade i ostale izvore indirektnog svetla, koristimo jednu HDR sliku koja "obavija" celu scenu i služi kao izvor svetlosti iz svih pravaca.

Kako IBL radi sa PBR-om

U kontekstu rendering jednačine (pogledajte poglavlje 10), IBL efektivno postaje integracija dolazećeg svetla sa BRDF-om preko cele hemisfere:

L_out(v) = ∫ f(l, v) · L_in(l) · (n · l) dl
           Ω

Gde L_in(l) dolazi iz environment mape za svaki pravac l na hemisferi.

Problem: ovaj integral je izuzetno skup za izračunavanje u real-time-u. Za svaki piksel na ekranu, trebalo bi integraliti svetlost iz svih pravaca na hemisferi, pomnoženu sa BRDF-om. Čak i sa Monte Carlo uzorkovanjem, ovo je previše za 60 FPS.

Split-Sum aproksimacija

Rešenje koje koriste praktično svi moderni engine-i (uključujući UE5) je Split-Sum aproksimacija, koju je Epic Games popularizovao za UE4:

Osnovna ideja: razdvojiti integral na dva nezavisna dela koji se mogu preračunati unapred:

L_out(v) ≈ [∫ L_in(l) dl] · [∫ f(l, v) · (n · l) dl]

Prvi deo: Pre-filtered Environment Map

Ovo je environment mapa koja je "zamućena" (filtrirana) za svaki nivo roughness-a. Rezultat se čuva kao mipmap chain environment mape:

Kada shader traži refleksiju za određeni roughness, jednostavno uzorkuje odgovarajući mip level environment mape. Ovo je izuzetno efikasno -- samo jedan texture lookup!

Drugi deo: Environment BRDF (LUT)

Ovaj integral zavisi samo od roughness-a i ugla posmatranja (n·v), a ne od samog okruženja. To znači da se može preračunati za sve kombinacije roughness i n·v i čuvati u 2D lookup teksturi (LUT -- Look-Up Table).

UE5 koristi 2D LUT teksturu gde:

Finalna formula za IBL specular je:

L_specular = prefilteredColor · (F0 · envBRDF.r + envBRDF.g)

Gde je prefilteredColor uzorkovan iz pre-filtered environment mape sa odgovarajućim roughness mip level-om, a envBRDF.r i envBRDF.g su uzorkovani iz LUT teksture.

IBL Diffuse

Za difuznu komponentu, situacija je jednostavnija. Difuzni BRDF je (približno) konstantan (Lambertian: c / π), pa integral postaje:

L_diffuse = (c / π) · ∫ L_in(l) · (n · l) dl
                       Ω

Integral ∫ L_in(l) · (n · l) dl se preračunava za svaki pravac normale i čuva u irradiance map -- niskoresolucionoj (tipično 64x64 ili 128x128) cubemap teksturi gde svaki texel sadrži ukupno difuzno osvetljenje za taj pravac.

Lookup je trivijalan: uzorkujte irradiance mapu sa normalom površine kao lookup vektorom, pomnožite sa base color-om, i imate difuznu IBL komponentu.

IBL u UE5

UE5 koristi IBL kroz nekoliko mehanizama:

  1. Reflection Captures -- sferne ili box-shaped zone koje hvataju okolno osvetljenje u cubemap i koriste ga za specularme refleksije na objektima unutar zone. Ovo su pre-filtered environment mape za lokalno okruženje.

  2. Sky Light -- globalni izvor ambijentalnog osvetljenja baziran na skybox-u ili HDR slici. Obezbeđuje i difuzni i specularni IBL za celu scenu.

  3. Lumen -- UE5-ov revolucionarni sistem globalnog osvetljenja koji ide dalje od tradicionalnog IBL-a. Lumen dinamički izračunava indirektno osvetljenje u real-time-u, bez potrebe za statičnim Reflection Capture-ima. Ipak, Lumen interno koristi mnoge principe koje smo ovde objasnili.

  4. Screen Space Reflections (SSR) -- dopunjava IBL/Reflection Capture sa refleksijama baziranim na onome što je trenutno vidljivo na ekranu. SSR je "lokalnija" i preciznija dopuna globalnom IBL-u, ali radi samo za ono što je vidljivo kameri.

Ograničenja IBL-a

IBL nije savršeno rešenje za indirektno osvetljenje:


Rezime ključnih pojmova

Termin Definicija
PBR Physically Based Rendering -- pristup renderovanju zasnovan na fizičkim zakonima interakcije svetla sa materijalima
Microfacet Mikroskopski mali, savršeno ravni element površine. Površina se modelira kao kolekcija mikrofaseta
NDF Normal Distribution Function -- statistička distribucija orijentacija mikrofaseta. Kontroliše oblik specularnog highlight-a
GGX Trowbridge-Reitz NDF model -- industrijski standard za distribuciju mikrofaseta
Cook-Torrance Specularni BRDF model: f = DFG / 4(n·l)(n·v). Standard za PBR specular
Fresnel efekat Povećanje reflektivnosti pri grazing uglovima. Sve površine postaju ogledala pri dovoljno malom uglu
Schlick aproksimacija F = F0 + (1-F0)(1-cosθ)⁵ -- efikasna aproksimacija Fresnel jednačine
F0 Bazna reflektivnost pri normalnom uglu upada (θ=0°). ~0.04 za dielektrike, 0.5-1.0 za metale
Roughness Parametar koji kontroliše hrapavost površine (0=ogledalo, 1=potpuno mat). Matematički kontroliše širinu NDF-a
Glossiness Inverzan roughness (1-roughness). Alternativna konvencija
Metalness Binarni parametar koji definiše da li je materijal metal (1) ili dielektrik (0)
Base Color RGB boja koja služi kao albedo (difuzna boja) za dielektrike ili F0 (specularma reflektivnost) za metale
Energy Conservation Princip da površina ne može reflektovati više svetla nego što prima
Diffuse refleksija Svetlost koja ulazi u materijal, rasipa se interno, i izlazi nazad. Obojena, nezavisna od ugla posmatranja
Specular refleksija Svetlost koja se odbija od površine. Neobojeno za dielektrike, obojeno za metale. Zavisi od ugla
IBL Image-Based Lighting -- korišćenje environment mapa kao izvora indirektnog osvetljenja
Split-Sum Aproksimacija koja razdvaja IBL integral na pre-filtered environment map i environment BRDF LUT
Irradiance Map Preračunata mapa difuznog osvetljenja iz okruženja za svaki pravac normale
Geometry Function (G) Deo Cook-Torrance BRDF-a koji modelira samozaklanjanje (shadowing/masking) mikrofaseta
Halfway Vector h = normalize(L + V) -- vektor na pola puta između vektora svetla i pogleda
BRDF Bidirectional Reflectance Distribution Function -- funkcija koja opisuje kako površina reflektuje svetlost
Lambertian Idealni difuzni reflektor koji reflektuje svetlost jednako u svim pravcima. f = c/π
Albedo Difuzna reflektivnost površine -- koliki procenat svetlosti se difuzno reflektuje, bez speculara
HDR High Dynamic Range -- opseg svetlosnih intenziteta širi od standardnog 0-1 (ili 0-255)

Dodatna literatura i linkovi

Akademski radovi (hronološki)

  1. Torrance, K.E. & Sparrow, E.M. (1967). Theory for Off-Specular Reflection From Roughened Surfaces. Journal of the Optical Society of America.

    • Originalni rad koji postavlja temelje microfacet teorije.
  2. Cook, R.L. & Torrance, K.E. (1982). A Reflectance Model for Computer Graphics. ACM Transactions on Graphics.

    • Landmark paper koji uvodi Cook-Torrance BRDF. Obavezno štivo za razumevanje specularnog modela.
  3. Schlick, C. (1994). An Inexpensive BRDF Model for Physically-Based Rendering. Computer Graphics Forum.

    • Uvodi Schlick aproksimaciju Fresnel jednačine i mnoge druge korisne aproksimacije.
  4. Walter, B. et al. (2007). Microfacet Models for Refraction through Rough Surfaces. Eurographics Symposium on Rendering.

    • Popularizuje GGX/Trowbridge-Reitz NDF za rendering. Ključan rad za razumevanje modernog NDF-a.
  5. Burley, B. (2012). Physically-Based Shading at Disney. SIGGRAPH Course Notes.

    • Disney-ev "Principled BRDF" paper. Direktan preteča PBR sistema u svim modernim engine-ima.

Industrijske prezentacije

  1. Karis, B. (2013). Real Shading in Unreal Engine 4. SIGGRAPH Course Notes.

    • Epic-ov paper o implementaciji PBR-a u UE4. Direktno relevantno za UE5 jer je osnova ista.
  2. Lagarde, S. & de Rousiers, C. (2014). Moving Frostbite to Physically Based Rendering. SIGGRAPH Course Notes.

    • Detaljan opis prelaska Frostbite engine-a na PBR. Odličan za razumevanje praktičnih izazova.

Online resursi

  1. LearnOpenGL -- PBR sekcija: https://learnopengl.com/PBR/Theory

    • Izvrstan, besplatan vodič kroz PBR matematiku sa kodom. Topla preporuka.
  2. Google Filament -- Material Documentation: https://google.github.io/filament/Filament.html

    • Jedna od najdetaljnijih tehničkih dokumentacija PBR implementacije. Google-ov Filament engine.
  3. Substance Academy: https://academy.substance3d.com/

    • Adobe-ov besplatni kurs za PBR teksturiranje u Substance alatima.
  4. UE5 Documentation -- Physically Based Materials: Zvanična Unreal Engine dokumentacija za PBR materijale.

    • Uvek ažurno sa najnovijom verzijom engine-a.

Referentne tabele

  1. Dontnod Entertainment -- PBR Chart: Referentna tabela F0 vrednosti i preporučenih roughness/metalness opsega za uobičajene materijale.

  2. Substance PBR Guide: Sveobuhvatan vodič za PBR vrednosti materijala, sa slikama i preporučenim opsezima.


Veze sa drugim poglavljima


Zaključak

PBR nije samo tehnika -- to je lingua franca modernog renderovanja. Razumevanje fizičkih principa iza PBR-a ne čini vas samo boljim tehničkim artistom; ono vam daje intuiciju za to zašto materijali izgledaju kako izgledaju, što vam omogućava da brže i tačnije kreirate ubedljive materijale.

Ključni zaključci ovog poglavlja:

  1. PBR materijali opisuju šta je površina, ne kako izgleda -- fizika se brine za izgled pod svim osvetljenjima.

  2. Microfacet teorija modelira površinu kao kolekciju sićušnih ogledala -- roughness kontroliše njihovu distribuciju.

  3. Cook-Torrance BRDF (D·F·G / 4·(n·l)·(n·v)) kombinuje distribuciju mikrofaseta, Fresnel efekat i samozaklanjanje u fizički korektan specularni model.

  4. Fresnel efekat čini površine reflektivnijim pri grazing uglovima -- F = F0 + (1-F0)(1-cosθ)⁵.

  5. Metalness je binarni prekidač: metali nemaju diffuse i imaju obojeni specular; dielektrici imaju diffuse i neobojeni specular.

  6. Konzervacija energije garantuje da materijal ne može reflektovati više svetla nego što prima.

  7. IBL i Split-Sum obezbeđuju efikasno indirektno osvetljenje na osnovu environment mapa.

U narednom poglavlju, primenićemo sve ovo znanje u praksi -- kreiraćemo kompleksne PBR materijale u UE5 Material Editor-u, od prostih površina do višeslojnih materijala sa maskama, blending-om i dinamičkim efektima.


Sledeće poglavlje: Poglavlje 12 -- Kreiranje materijala u UE5

Prethodno poglavlje: Poglavlje 10 -- Teorija osvetljenja i rendering jednačina