← Zpět na přehledPGA / 01Programování grafických aplikací

BI-PGA

Světlo a sledování paprsku

1 / 42

Světlo a sledování paprsku

  • Světlo a materiál: rozdělení dopadající energie do směrů.
  • Paprsky a viditelnost: průsečíky se scénou a stínové testy.
  • Odraz, lom a nepřímé osvětlení: další cesty světla mezi povrchy.

2 / 42

Model světla a materiálu

  • Pro běžný rendering používáme geometrickou optiku. Světlo popisujeme přenosem energie podél paprsků.
  • Povrch část dopadajícího světla odráží, část pohltí a případně část propustí. Výsledný obraz závisí také na zdrojích světla a viditelnosti.
  • Zjednodušení ustáleného stavu zanedbává dobu šíření světla v běžné scéně. Vlnové a další jevy vyžadují rozšíření modelu.

3 / 42

Azimut a elevace

  • Azimut φ určuje otočení směru v rovině povrchu kolem normály. Elevace ε udává výšku směru nad touto rovinou.
  • Na horní polokouli je elevace 0° až 90°. Směr v rovině má ε=0°, směr po normále ε=90°.
  • Úhel dopadu θ měříme od normály. Platí θ=90∘−ε\theta=90^\circ-\varepsilon, tedy cos⁡θ=sin⁡ε\cos\theta=\sin\varepsilon.
x=rcos⁡εcos⁡φ,y=rcos⁡εsin⁡φ,z=rsin⁡ε.\begin{aligned}x&=r\cos\varepsilon\cos\varphi,\\y&=r\cos\varepsilon\sin\varphi,\\z&=r\sin\varepsilon.\end{aligned}

Interaktivní azimut a elevace

Vizualizace se načte při zobrazení. Všechny rovnice a původní ukázky jsou dostupné i bez JavaScriptu.

4 / 42

Od zdroje k pixelu

  • Zdroj vyzařuje zářivý výkon. Geometrie a vzdálenost určují, kolik výkonu dopadne na povrch.
  • Materiál rozděluje energii do směrů. Kamera zaznamenává radianci podél paprsku.
  • Při implementaci oddělujeme geometrii, viditelnost, vlastnosti materiálu a výpočet světelného přenosu.

5 / 42

Radiometrické veličiny

  • Radiometrie popisuje energii záření. Fotometrické veličiny navíc zohledňují citlivost lidského oka.
  • Rozlišujeme celkovou energii, výkon, jeho rozložení do směrů a výkon připadající na plochu.
Veličina / EnglishZnačka a definiceJednotkaVýznam
Zářivá energieRadiant energyQ\displaystyle QJCelková energie záření.
Zářivý tokRadiant flux / radiant powerΦ=dQdt\displaystyle \Phi=\frac{\mathrm dQ}{\mathrm dt}W = J/sEnergie přenesená za jednotku času.
ZářivostRadiant intensityI=dΦdω\displaystyle I=\frac{\mathrm d\Phi}{\mathrm d\omega}W/srVýkon bodového zdroje do jednotkového prostorového úhlu.
OzářeníIrradianceE=dΦdA\displaystyle E=\frac{\mathrm d\Phi}{\mathrm dA}W/m²Dopadající výkon na jednotku skutečné plochy.
Měrná zář (radiance)RadianceL=d2ΦdA⊥ dω\displaystyle L=\frac{\mathrm d^2\Phi}{\mathrm dA_{\perp}\,\mathrm d\omega}W/(m²·sr)Výkon na jednotku promítnuté plochy a prostorového úhlu.
Co znamenají jednotlivé značky?
Q, Φ, I, E, L
Značky veličin a jednotky jsou v tabulce. W označuje watt, J joule, m metr a sr steradián.
t, A
t je čas [s], A je skutečná plocha [m²].
A⊥, θ
A⊥ je plocha promítnutá kolmo ke směru záření: dA⊥=dA cos θ. θ je úhel směru vůči normále.
ω, dω
Tučné ω označuje jednotkový směrový vektor. dω je malý element prostorového úhlu [sr], nikoli běžný úhel v rovině.
d, Δ
d značí diferenciál, tedy limitně malou změnu. Δ označuje konečný rozdíl nebo konečnou buňku.

6 / 42

Zdroj, světelný kužel a deska

  • Bodový zdroj vyzařuje do kužele se stálou zářivostí I uvnitř. Mimo kužel je příspěvek nulový.
  • Posouvej desku, měň její náklon a sleduj ozáření E ve středu i jeho rozložení po ploše. Mapa používá stále stejnou barevnou stupnici.

E ve středu desky

025 W/m²

Deska má rozměry 2,5 × 2,5 m. Barva: 0 až 25 W/m², vyšší hodnoty mají stejnou nejsvětlejší barvu. Výpis uvádí nezkrácené hodnoty. Tok na desce je numerický součet E·dA.

Hodnoty se vypočítají při zobrazení.

7 / 42

Vzdálenost a sklon povrchu

  • U izotropního bodového zdroje klesá ozáření s druhou mocninou vzdálenosti.
  • Skalární součin normály a směru ke světlu vyjadřuje promítnutou plochu. Zadní strana neprůsvitného povrchu nepřijímá tento příspěvek.
  • Zákon 1/r21/r^2 zde platí pro bodový zdroj, nikoli jako obecný útlum radiance podél paprsku.
E=Ir2max⁡(0,n⋅ωi)E=\frac{I}{r^2}\max(0,\mathbf n\cdot\boldsymbol\omega_i)
A proč je to druhá mocnina vzdálenosti?

Stejný svazek směrů o prostorovém úhlu Ω přenáší stále stejný výkon. Na kouli o poloměru r zabírá plochu A=r²Ω, takže se výkon rozdělí na plochu rostoucí jako r². Při dvojnásobné vzdálenosti je plocha čtyřnásobná a ozáření čtvrtinové. Na nakloněné desce navíc působí projekční kosinus. Platí pro bodový zdroj bez absorpce a překážek. U kolimovaného svazku tento geometrický rozptyl nenastává.

Φ=IΩ,A=r2Ω,E⊥=ΦA=Ir2,E=Ir2max⁡(0,cos⁡θ).\begin{aligned}\Phi&=I\Omega,\quad A=r^2\Omega,\\E_{\perp}&=\frac{\Phi}{A}=\frac{I}{r^2},\quad E=\frac{I}{r^2}\max(0,\cos\theta).\end{aligned}

8 / 42

Světelné zdroje

  • Bodový zdroj vede k jednoduchému stínovému testu a ideálně tvrdému stínu.
  • Směrový zdroj aproximuje velmi vzdálené osvětlení. Plošný zdroj představuje množinu bodů a umožňuje měkké stíny.
  • Environmentální mapa zadává příchozí radianci z okolních směrů. Velikost zdroje ovlivňuje také tvar odlesku.

9 / 42

Přímé a nepřímé osvětlení

  • Přímý příspěvek spojuje viditelný bod se zdrojem bez dalšího odrazu. Nepřímý příspěvek přichází přes další povrchy.
  • Barvy a světelné příspěvky sčítáme v lineárním prostoru. Barevné sRGB textury před výpočtem dekódujeme.
  • Normal, roughness, metallic a AO obsahují data. Barevná sRGB transformace by změnila jejich význam.

10 / 42

Difuzní odraz

  • Lambertův povrch je idealizace matného odrazu. Papír, matné nátěry nebo některé plasty se mu mohou přibližovat, ale reálný materiál obvykle obsahuje i lesklou složku.
  • Při jednom příchozím směru má ideální difuzní model stejnou odchozí radianci do všech směrů. Rozlišujeme ji od výkonu zachyceného různě natočenou plochou.

11 / 42

Zrcadlový odraz a mikrogeometrie

  • Ideální zrcadlo odráží příchozí světlo do jediného směru. V distribučním popisu používáme Diracovu delta distribuci, nikoli úzký konečný lalok se svévolnou šířkou.
  • Mikroskopicky hladké rozhraní a hrubá mikrogeometrie vedou k jinému rozložení odrazu. Příklad suché a mokré silnice ukazuje změnu odlesku po zaplnění nerovností vodou.
  • Kolik energie odrazí rozhraní, určuje Fresnelův jev. Zbytek může projít do druhého prostředí, kde se směr šíření změní lomem.

12 / 42

Lesklý odraz a tvar odrazové funkce

  • Lesklý povrch má konečný odrazový lalok. Statistické rozdělení mikrofacet popisuje širší nebo užší rozložení normál.
  • Níže porovnáváme Lambertovu odrazovou funkci, izotropní GGX a kombinaci 70 % Lambertovy a 30 % GGX odrazové funkce. Dokonalé zrcadlo ukazuje samostatná šipka jako mezní distribuci.
  • Polární řez ukazuje frf_r pro pevný příchozí směr, nikoli celý 4D materiál. Křivky normalizujeme na jejich vlastní maxima, aby byl patrný tvar; skutečné hodnoty frf_r vypisujeme samostatně.

Interaktivní tvar odrazové funkce

Oranžová: 70 % Lambert + 30 % GGX. Každá křivka má vlastní maximum 1, zde porovnáváme pouze tvar.

Vizualizace se načte při zobrazení. Všechny rovnice a původní ukázky jsou dostupné i bez JavaScriptu.

13 / 42

Phongův model: tři složky

  • Ambientní složka nahrazuje chybějící nepřímé světlo konstantou. Difuzní složka závisí na natočení povrchu ke světlu. Zrcadlová složka vytváří odlesk závislý také na směru pohledu.
  • Koeficienty kak_a, kdk_d a ksk_s váží jednotlivé složky. Exponent p určuje šířku odlesku. Vyšší p znamená užší odlesk.
  • Osvětlovací model počítá barvu. Phongovo stínování naproti tomu interpoluje normály mezi vrcholy.
C=kaCa+Cl[ kdcdmax⁡(0,n⋅l)+kscsmax⁡(0,r⋅v)p ]\begin{aligned}C&=k_a C_a+C_l\Bigl[\,k_d c_d\max(0,\mathbf n\cdot\mathbf l)\\&\qquad+k_s c_s\max(0,\mathbf r\cdot\mathbf v)^p\,\Bigr]\end{aligned}
A jak souvisí flat, Gouraudovo a Phongovo stínování?

Flat shading používá jednu normálu plochy. Gouraudovo stínování počítá barvu ve vrcholech a interpoluje ji. Phongovo stínování interpoluje normály a vyhodnocuje osvětlení ve fragmentu. Phongův osvětlovací model lze použít s různými způsoby stínování.

Ambientní
Difuzní
Zrcadlová
Součet

Stejná koule a kamera, pouze jiná složka výpočtu. Cₐ=c_d=(0,65; 0,30; 0,08), Cₗ=c_s=(1; 1; 1). Barvy se počítají v lineárním RGB. Všechny náhledy mají stejnou pevnou převodní funkci c/(1+c) a sRGB zobrazení, bez automatické expozice.

Hodnoty se vypočítají při zobrazení.

14 / 42

Phong a Blinn–Phong: směry a exponent

  • n je jednotková normála povrchu, l směr ke světlu a v směr k pozorovateli. Všechny vektory vyhodnocujeme ve stejném souřadném systému.
  • r je ideální zrcadlový směr. Úhel α mezi r a v určuje polohu pozorovatele vůči odlesku.
  • CaC_a je barva ambientního osvětlení, ClC_l barva světla, cdc_d difuzní barva materiálu a csc_s barva odlesku. Barvy násobíme po složkách.
r=2(n⋅l)n−l,cos⁡α=r⋅v,S=ksmax⁡(0,cos⁡α)p.\begin{aligned}\mathbf r&=2(\mathbf n\cdot\mathbf l)\mathbf n-\mathbf l,\\\cos\alpha&=\mathbf r\cdot\mathbf v,\\S&=k_s\max(0,\cos\alpha)^p.\end{aligned}
Jak se liší Blinn–Phong?

Blinn–Phong používá poloviční vektor h mezi směrem světla a pohledu. Odlesk váží mocninou n·h místo r·v. Exponenty obou modelů nemají stejnou interpretaci šířky, nelze je bez úpravy zaměnit.

h=l+v∥l+v∥,SB=ksmax⁡(0,n⋅h)pB\mathbf h=\frac{\mathbf l+\mathbf v}{\lVert\mathbf l+\mathbf v\rVert},\quad S_B=k_s\max(0,\mathbf n\cdot\mathbf h)^{p_B}

Vektory l, v a r míří od povrchu. n je normála. Zrcadlový člen vrcholí, když je v rovnoběžné s r a osvětlení dopadá na přední stranu.

Hodnoty se vypočítají při zobrazení.

15 / 42

Phongův model na celé polokouli

  • Z jednoho bodu povrchu sledujeme všechny směry pohledu nad povrchem. Vzdálenost barevného povrchu od středu ukazuje velikost vybrané složky.
  • Měň kak_a, kdk_d, ksk_s a p. Koeficient ksk_s mění výšku odleskového laloku, p jeho šířku. Směr světla určuje osu odlesku.
  • Šedá síť má jednotkový poloměr. Měřítko pro zvolenou složku se při změně materiálových konstant nepřepočítává, takže lze porovnávat velikosti. Tvar otáčej tažením nebo klávesami šipek.
S(v)=ksmax⁡(0,r⋅v)pS(\mathbf v)=k_s\max(0,\mathbf r\cdot\mathbf v)^p

Polární řez všemi složkami

AmbientníDifuzníZrcadlováSoučet

Řez leží v rovině světla a normály. Všechny čtyři křivky mají společnou radiální stupnici uvedenou v grafu. Oproti 3D náhledu se rozsah této společné stupnice přizpůsobuje největší hodnotě součtu.

Natočení 3D pohledu

Poloměr = relativní skalární odezva v daném směru, všechny barevné faktory mají hodnotu 1. Jednotková šedá polokoule je pouze měřítko. Pro samostatné složky má 3D rozsah 0–1, pro součet 0–3. Měřítko se při změně materiálových konstant nemění. Zrcadlový člen nemá jednotku sr⁻¹.

Hodnoty se vypočítají při zobrazení.

16 / 42

BRDF: klíčový popis odrazu

  • Většinu světla z běžných neprůsvitných objektů vidíme po odrazu od jejich povrchu. Vlastní emisi popisujeme zvlášť.
  • Bidirectional Reflectance Distribution Function, česky obousměrná distribuční funkce odrazivosti, propojuje materiál s výpočtem světla. Používáme označení frf_r.
  • Stejný materiál může pod jiným světlem nebo z jiného směru vypadat jinak. Samotná RGB barva materiálu jeho vzhled neurčuje.

17 / 42

Definice BRDF

  • Vektory příchozího směru ωi\boldsymbol\omega_i a odchozího směru ωo\boldsymbol\omega_o míří od povrchu. Světlo přichází proti ωi\boldsymbol\omega_i.
  • BRDF frf_r udává diferenciální odchozí radianci na jednotku příchozího ozáření, v sr−1\mathrm{sr}^{-1}. Radianci a ozáření nelze zaměnit.
  • Pro pevné x a λ závisí obecná BRDF na čtyřech úhlech. U izotropního materiálu lze eliminovat společné otočení kolem normály.

Definiční rovnice pro danou dvojici směrů

fr(x,ωi,ωo)=dLo(x,ωo)Li(x,ωi)cos⁡θi dωi,[fr]=sr−1.\begin{aligned}f_r(x,\boldsymbol\omega_i,\boldsymbol\omega_o)&=\frac{\mathrm d L_o(x,\boldsymbol\omega_o)}{L_i(x,\boldsymbol\omega_i)\cos\theta_i\,\mathrm d\omega_i},\\[.5em][f_r]&=\mathrm{sr}^{-1}.\end{aligned}

Příspěvek příchozího svazku

dEi=Li(x,ωi)cos⁡θi dωi\mathrm d E_i=L_i(x,\boldsymbol\omega_i)\cos\theta_i\,\mathrm d\omega_i

18 / 42

Vzorkování a tabulka 81 × 81

  • Měříme dvojice směrů osvětlení a pozorování, ne pouze jednu barvu vzorku. Tabulka může ukládat RGB nebo spektrální hodnoty.
  • Formát UBO používá 81 směrů: pól a prstence podle tabulky. Pro každý z 81 směrů světla uvažujeme 81 směrů pozorování, tedy 6561 dvojic.
  • 81 × 81 je konkrétní historická volba vzorkování, nikoli univerzální minimum. Úzké odlesky a anizotropie mohou vyžadovat jemnější nebo adaptivní měření.
Elevace ε [°]Krok azimutu Δφ [°]Počet směrů
90pól1
75606
603012
452018
301820
151524
Celkem81

Interaktivní vzorkování: dva indexy, čtyři úhly

θ měříme od normály; elevace ε = 90° − θ. Každý index představuje dvojici úhlů. V režimu čtyř úhlů lze vybírat i směry mezi 81 vzorky.

● Světlo i● Pohled o
Natočení pohledu na geometrii

Tažením nebo šipkami otáčíte pouze diagram, nikoli směry světla a pozorování.

Matice 81 × 81

Index světla i ↓

Index pohledu o →

Řádky: světlo. Sloupce: pohled.

Model: 0,7 Lambert (ρ=0,6) + 0,3 GGX (α=0,25, F₀=0,04). Syntetická odrazová funkce, nikoli naměřený materiál. Barevná škála je logaritmická a stálá.

19 / 42

BRDF: směr světla a směr pozorování

  • Příchozí i odchozí směr popisujeme azimutem φ a elevací ε. Normála n vymezuje horní polokouli.
  • V rovnicích vystupují úhly θ od normály. Pro oba směry platí θ=90∘−ε\theta=90^\circ-\varepsilon. Směrové vektory mají jednotkovou délku.
  • U anizotropního materiálu záleží také na natočení vůči tečnému směru, například orientaci vláken nebo broušení.

Interaktivní směry BRDF

Vizualizace se načte při zobrazení. Všechny rovnice a původní ukázky jsou dostupné i bez JavaScriptu.

20 / 42

Ukázky BRDF na koulích

  • Koule nabízí v jednom obrazu mnoho normál, a proto je užitečná pro porovnávání materiálů. Ukázky níže srovnávají pět vzorků a větší katalog materiálů.
  • Výsledek současně závisí na osvětlení, kameře, expozici a tónovém mapování. Jediný render neukazuje celou BRDF ani všechny odlesky.
  • Pro systematické srovnání měníme světlo a pohled za kontrolovaných podmínek. Úzký odlesk může v jednom snímku zcela chybět.
  • Stejnou odrazovou funkci přiřadíme kouli i krychli. Při pohybu světla se mění příchozí směry, odlesky a stíny. Kliknutí na povrch ukáže vazbu mezi ozářením, BRDF a odchozí radiancí.

Stejný materiál na kouli a krychli

Přímé osvětlení bodovým zdrojem a skutečné stínové paprsky. Bez nepřímého světla. Podlaha je šedá Lambertova. Difuzní albedo objektů je (ρ; 0,55ρ; 0,18ρ). Expozice i převod c/(1+c) a sRGB zůstávají stejné. Kliknutím na povrch zobrazíte E, BRDF a odchozí radianci v daném bodě.

21 / 42

Měření BRDF: gonioreflektometr

  • Zdroj a kamera nebo detektor mění polohu vůči vzorku. Úhly, vzdálenosti i orientaci povrchu známe. Jedna dvojice směrů dává jeden směrový vzorek.
  • Kameru radiometricky kalibrujeme a pracujeme v lineárních hodnotách. Odečteme temný signál a okolní světlo, zohledníme expozici, HDR a odezvu detektoru.
  • Příchozí ozáření určíme kalibrací zdroje nebo pomocí známého referenčního vzorku. Samotné dělení dvou sRGB pixelů neudává BRDF.
  • Konečná velikost světla, zorné pole detektoru, úhlová apertura detektoru a nerovnoměrnost vzorku měření průměrují. U BTF navíc uchováváme prostorově rozlišené snímky a registrujeme je.

Kalibrované měření jednoho směrového vzorku

fr≈Lo,sample−Lo,backgroundEif_r\approx\frac{L_{o,\mathrm{sample}}-L_{o,\mathrm{background}}}{E_i}

Referenční Lambertův vzorek za stejných podmínek

fr,sample≈Lo,sampleLo,reference ρreferenceπf_{r,\mathrm{sample}}\approx\frac{L_{o,\mathrm{sample}}}{L_{o,\mathrm{reference}}}\,\frac{\rho_{\mathrm{reference}}}{\pi}

22 / 42

Materiálové ukázky: BRDF a BTF

  • Stejné materiály porovnáváme na kouli a na ploše. Směrový odlesk je jen část vzhledu texturovaného povrchu.
  • BRDF popisuje odraz v jednom bodě. Homogenní BRDF přenesená na kouli nezachytí kresbu látky či prostorové zákryty strukturovaného vzorku.
  • BTF uchovává změny vzhledu v závislosti na poloze v ploše i na směru osvětlení a pozorování. Pro pevné spektrální pásmo obvykle používáme šest souřadnic: dvě prostorové a čtyři úhlové.
Koule, vzorek 1Plošný vzorek 1
Vzorek 1
Koule, vzorek 2Plošný vzorek 2
Vzorek 2
Koule, vzorek 3Plošný vzorek 3
Vzorek 3
Koule, vzorek 4Plošný vzorek 4
Vzorek 4
Koule, vzorek 5Plošný vzorek 5
Vzorek 5

Stejné vzorky na kouli a na ploše.

23 / 42

Fyzikálně přípustná BRDF

  • Pro pasivní povrch je frf_r nezáporná. V běžném reciprokém modelu platí záměna příchozího a odchozího směru.
  • Energetickou podmínku kontrolujeme integrací přes všechny odchozí směry pro pevný příchozí směr. Zde proto patří kosinus odchozího úhlu θo\theta_o.
  • Jednotlivá hodnota BRDF může být větší než 1 sr−1\mathrm{sr}^{-1}. Omezení se vztahuje na integrovaný odražený podíl, nikoli na každou hodnotu funkce.
fr≥0,fr(ωi,ωo)=fr(ωo,ωi).\begin{gathered}f_r\geq0,\\ f_r(\boldsymbol\omega_i,\boldsymbol\omega_o)=f_r(\boldsymbol\omega_o,\boldsymbol\omega_i).\end{gathered}

Zachování energie pro každé pevné ωᵢ

∫Ω+fr(ωi,ωo)cos⁡θo dωo≤1\int_{\Omega^+}f_r(\boldsymbol\omega_i,\boldsymbol\omega_o)\cos\theta_o\,\mathrm d\omega_o\leq1

24 / 42

Lambertova BRDF a faktor 1/π

  • Difuzní odrazivost ρ leží mezi 0 a 1. Textura může řídit ρ(x).
  • Faktor 1/π normalizuje integrál přes horní polokouli: odražený podíl je ρ. Albedo ρ není BRDF.
  • Při pevném ozáření E nezávisí radiance Lo=ρE/πL_o=\rho E/\pi na pohledu. Výkon do malého prostorového úhlu závisí na promítnuté ploše.

Ideálně difuzní BRDF

fr=ρπf_r=\frac{\rho}{\pi}

Integrál promítnuté polokoule

∫Ω+cos⁡θ dω=π\int_{\Omega^+}\cos\theta\,\mathrm d\omega=\pi

Odražený podíl energie

∫Ω+ρπcos⁡θ dω=ρ\int_{\Omega^+}\frac{\rho}{\pi}\cos\theta\,\mathrm d\omega=\rho

25 / 42

BRDF v zobrazovací rovnici

  • Odchozí radiance se skládá z emise a odrazu příchozího světla ze všech směrů horní polokoule.
  • BRDF frf_r popisuje materiál. LiL_i obsahuje světlo ze scény včetně nepřímých cest a viditelnosti. Kosinus převádí radianci na příspěvek ozáření.
  • Integrujeme příchozí směry ωi\boldsymbol\omega_i, zatímco výstupní směr ωo\boldsymbol\omega_o ke kameře držíme pevný. To je jiný integrační směr než při kontrole odražené energie.

Zobrazovací rovnice

Lo(x,ωo)=Le(x,ωo)+∫Ω+fr(x,ωi,ωo)⋅Li(x,ωi)cos⁡θi dωi.\begin{aligned}L_o(x,\boldsymbol\omega_o)&=L_e(x,\boldsymbol\omega_o)\\ &\quad+\int_{\Omega^+}f_r(x,\boldsymbol\omega_i,\boldsymbol\omega_o)\\ &\qquad\cdot L_i(x,\boldsymbol\omega_i)\cos\theta_i\,\mathrm d\omega_i.\end{aligned}

26 / 42

BRDF: jeden člen součtu a celý integrál

  • Malá úhlová buňka přispěje přibližně ΔLoL_o = frf_r LiL_i cos θi\theta_i Δωi\boldsymbol\omega_i. Příspěvky všech buněk sčítáme v lineárních jednotkách.
  • Pro LiL_i=10 W/(m² sr), θi\theta_i=60°, Δωi\boldsymbol\omega_i=0,02 sr a Lambertovo ρ=0,6 dostaneme ΔEᵢ=0,1 W/m² a ΔLoL_o≈0,01910 W/(m² sr).
  • Lokální model vyhodnotí několik zdrojů. Whitted přidá ideální odraz a lom. Path tracing vzorkuje další směry a světelné cesty; photon mapping propojuje transport od zdrojů s vyhodnocením u kamery.

27 / 42

Přehled modelů a měřená BRDF

  • Analytický model zhušťuje vzhled do několika parametrů. Tabulková BRDF ukládá naměřené směrové hodnoty a vyžaduje interpolaci, reprezentaci a správné vzorkování.
  • Model volíme podle typu povrchu, potřebné přesnosti a výpočetního rozpočtu. Samotný název modelu nezaručuje správné jednotky ani zachování energie.
Model / reprezentaceCo zachycuje
LambertIdeální difuzní odraz, ρ/π
Phong, Blinn–PhongEmpirický odlesk; normalizaci a energii řeší konkrétní varianta
Torrance–Sparrow, Cook–TorranceMikrofacety, Fresnel a geometrické zákryty
WardTaké anizotropní odlesk
Oren–NayarDrsný difuzní povrch
Měřená BRDFTabulka reálných směrových vzorků, např. MERL nebo ÚTIA

28 / 42

Viditelnost a stíny

  • Rasterizace postupuje od objektu k fragmentům. Ray casting vychází od pixelu a hledá první zásah ve scéně.
  • Primární viditelnost sama neurčuje stín: je třeba otestovat také cestu od povrchu ke světlu.
  • Whittedův ray tracing přidává dokonalé odrazy a lomy. Path tracing odhaduje obecnější světelný přenos vzorkováním směrů.

29 / 42

Paprsek a kamera

  • Paprsek má počátek o, směr d a platný interval parametru t.
  • Primární paprsek prochází vzorkem pixelu. Směr vychází z báze kamery, zorného pole a poměru stran.
  • Zásah vrací t, polohu, geometrickou a stínovací normálu, UV a identifikaci materiálu.
r(t)=o+td,t∈[tmin⁡,tmax⁡]\begin{gathered}\mathbf r(t)=\mathbf o+t\mathbf d,\\t\in[t_{\min},t_{\max}]\end{gathered}

30 / 42

Průsečík s koulí a trojúhelníkem

  • Dosazením paprsku do rovnice koule získáme kvadratickou rovnici. Vybereme nejmenší platný kořen v intervalu paprsku.
  • Pro trojúhelník ověříme průsečík s rovinou a nezáporné barycentrické souřadnice se součtem jedna.
  • Barycentrické váhy slouží také k interpolaci UV a stínovacích normál.
a=d⋅d,b=2d⋅(o−c),c0=∥o−c∥2−R2,at2+bt+c0=0.\begin{aligned}a&=\mathbf d\cdot\mathbf d,\\b&=2\mathbf d\cdot(\mathbf o-\mathbf c),\\c_0&=\lVert\mathbf o-\mathbf c\rVert^2-R^2,\\at^2+bt+c_0&=0.\end{aligned}

31 / 42

Paprsek a trojúhelník

  • Nejprve najdeme průsečík paprsku s rovinou trojúhelníku. Potom ověříme barycentrické váhy a platný interval t.
  • Záporná váha znamená bod mimo trojúhelník. Stejné váhy v platném zásahu interpolují UV, barvu i stínovací normálu.
P=o+td=(1−u−v)A+uB+vC,u≥0, v≥0, u+v≤1,tmin⁡≤t≤tmax⁡.\begin{aligned}P&=\mathbf o+t\mathbf d\\&=(1-u-v)A+uB+vC,\\u&\geq0,\ v\geq0,\ u+v\leq1,\\t_{\min}&\leq t\leq t_{\max}.\end{aligned}
Podrobnosti: parametr t a robustnost

Stejný bod P splňuje o+td. Zvětšíme-li d dvakrát, stejné P dostaneme s polovičním t. Parametr t je vzdálenost pouze pro jednotkový d. Zároveň se změní fyzická délka úseku se stejným tₘₐₓ. Interpolovanou stínovací normálu znovu normalizujeme. Demo odděluje rovinu a barycentrické souřadnice pro srozumitelnost a používá malé relativní tolerance. Nenahrazuje watertight test sdílených hran ani robustní řízení zaokrouhlovacích chyb. U koplanárního paprsku není jediný izolovaný průsečík.

Čelně (x, y): bod v rovině z = −5 m. Barva ukazuje váhy vrcholů A, B, C.
Z boku (z, x): zeleně platný úsek paprsku, čárkovaně přímka mimo interval. Souřadnice y se zde neprojeví.
Vrcholy, normála a konvence

A = (−1; −1; −5), B = (1; −1; −5), C = (0; 1; −5), normála n = (0; 0; 1). UV vrcholů: A = (0; 0), B = (1; 0), C = (0,5; 1). Hrany přijímáme, zadní strany nevyřazujeme. Červená, zelená a modrá jsou ilustrační RGB souřadnice vah, nikoli model osvětlení.

32 / 42

Nejbližší zásah a stínový paprsek

  • Closest-hit hledá nejmenší t. Any-hit pro neprůsvitný stín potřebuje pouze vědět, zda existuje překážka.
  • U bodového zdroje ukončíme stínový paprsek na světle. Objekt za světlem nesmí způsobit stín.
  • Počátek sekundárního paprsku je nutné robustně odsunout na správnou stranu povrchu. Pevné ε závisí na měřítku a může vytvořit světelné netěsnosti.
  • Viditelné přímé světlo vyhodnotíme pomocí BRDF, radiometrie zdroje a kosinového členu.

33 / 42

Odraz paprsku a výpočet směru

  • Dopadající vektor d míří k povrchu. Jednotková normála n určuje, kterou složku při odrazu obrátíme.
  • Tečná složka zůstane stejná, normálová změní znaménko. Stejný geometrický zákon ukazuje ideálně odražený míček.
r=d−2(d⋅n)n,∥n∥=1.\begin{aligned}\mathbf r&=\mathbf d-2(\mathbf d\cdot\mathbf n)\mathbf n,\\ \lVert\mathbf n\rVert&=1.\end{aligned}
Primární / dopadajícíStínovýOdraženýLomený
Předpoklady a zjednodušení ukázky

Ideálně pružný odraz bez gravitace a tření. Žlutý míček znázorňuje směr pohybu. Tečná složka se zachová, normálová obrátí znaménko. n je jednotková; d míří k povrchu.

34 / 42

Index lomu: rychlost a změna směru

  • Index lomu n = c/v udává poměr rychlosti světla ve vakuu a fázové rychlosti v prostředí. Je bezrozměrný.
  • Do opticky hustšího prostředí se paprsek láme k normále, do řidšího od normály. Záleží na poměru obou indexů.
  • Při kolmém dopadu se směr nemění, rychlost ano. Při přechodu do řidšího prostředí může nastat úplný vnitřní odraz.
n=cv,nisin⁡θi=ntsin⁡θt.\begin{aligned}n&=\frac c v,\\ n_i\sin\theta_i&=n_t\sin\theta_t.\end{aligned}
Primární / dopadajícíStínovýOdraženýLomený
Předpoklady a zjednodušení ukázky

Přibližné hodnoty pro viditelné světlo (PBRT, tab. 9.1); skutečný index závisí na vlnové délce, složení a teplotě. Rozestup značek na paprsku je úměrný v=c/n při stejné frekvenci. Kov tímto reálným n nemodelujeme.

35 / 42

Fresnelův jev: směr a množství světla

  • Směry určuje geometrická optika. Fresnelovy rovnice dávají odražený podíl výkonu F.
  • U hladkého dielektrika roste odraz k tečnému dopadu. Vzduch/sklo (n≈1,5): F0F_0≈4 %.
  • Bez absorpce se výkon dělí na F a 1−F. Pro radianci lomem navíc platí faktor indexů.
F0=(ni−ntni+nt)2F_0=\left(\frac{n_i-n_t}{n_i+n_t}\right)^2
Ilustrace: Dokonalý odraz
Dokonalý odraz · Zdroj ilustrace

36 / 42

Odraz, lom a jejich Fresnelova kombinace

  • Stejný model ukazuje ideální odraz, samotný lom a sklo s odrazem i lomem.
  • Samotný lom opomíjí odraženou větev. Fresnelova kombinace mění váhy se směrem a materiálem.

37 / 42

Whitted: strom paprsků

  • Primární paprsek: z kamery k nejbližšímu zásahu. Určíme materiál, emisi a přímé osvětlení.
  • Stínový paprsek: je zdroj viditelný? Pro neprůsvitné překážky stačí any-hit mezi zásah a světlo, bez rekurze.
  • Odraz a lom: nové paprsky hledají další zásahy. U ideálního zrcadla či skla tak vzniká rekurzivní strom.
Ilustrace: Paprsky ve Whittedově ray tracingu
Spustit interaktivní demo ↗ · Paprsky ve Whittedově ray tracingu · Zdroj ilustrace

38 / 42

Whitted: skládání příspěvků a ukončení

  • C je lineární RGB před zobrazením, d aktuální hloubka rekurze.
  • Fresnelův jev a materiál určují váhy wᵣ, wₜ. Při úplném vnitřním odrazu lom chybí.
  • Minutí scény vrátí pozadí. Hloubka D zastaví další větvení i mezi dvěma zrcadly. Příliš malé D obraz ochudí.

Lokální příspěvek + vážené výsledky odražené a lomené větve

Cd=Clocal+wrCr,d+1+wtCt,d+1,d<DC_d=C_{\mathrm{local}}+w_r C_{r,d+1}+w_t C_{t,d+1},\qquad d<D
Podrobnosti: lokální člen, konec větve a měkké stíny

Lokální příspěvek zahrnuje emisi a přímé osvětlení po testech viditelnosti, například z Phongova modelu. U difuzního materiálu bez ideální odrazivé a transmisní složky dál nerekurzujeme. Na hloubce D také počítáme lokální člen, ale další větve už nevysíláme. Váhy zahrnují materiálovou odezvu. Při fyzikálním transportu radiance lomem patří do transmisní váhy i faktor indexů lomu, nikoli jen 1−F. Plošné světlo vzorkujeme více stínovými paprsky: částečná viditelnost vytváří měkký stín, nikoli difuzní nepřímé osvětlení.

39 / 42

Monte Carlo a path tracing

  • Integrál odhadujeme vzorky směrů a dělíme jejich příspěvek hustotou pravděpodobnosti výběru.
  • Path tracing aktualizuje propustnost cesty, přidává emisi a přímé světlo a pokračuje náhodným směrem podle BSDF.
  • Russian roulette ukončuje dlouhé cesty s odpovídajícím převážením. Při splnění předpokladů nezavádí systematické zkreslení.
  • Počet vzorků snižuje šum. Denoising může pomoci s náhledem, ale nenahrazuje správný integrátor.
∫g(ω) dω≈1N∑k=1Ng(ωk)p(ωk)\int g(\boldsymbol\omega)\,\mathrm d\omega\approx\frac1N\sum_{k=1}^N\frac{g(\boldsymbol\omega_k)}{p(\boldsymbol\omega_k)}

40 / 42

Akcelerační struktury

  • Bez akcelerace může každý paprsek testovat všechna primitiva. BVH sdružuje objekty do hierarchie obalů a omezuje počet testů.
  • AABB určuje minimum a maximum v každé ose. Průchod využívá průsečíkové intervaly a nejbližší dosud známý zásah.
  • Octree a kd-tree dělí prostor, BVH dělí množinu primitiv. R-tree je další hierarchie obdélníkových obalů.
  • Akcelerace při korektní implementaci nemění obraz. Mění cenu jeho výpočtu.
Ilustrace: Octree (3D)
Octree (3D) · Zdroj ilustrace

41 / 42

Ukázky renderingu

  • Skleněné a kovové objekty ukazují lom, odlesky a přenos barevného světla mezi povrchy.
  • Rendery nelze pojmenovat podle vzhledu. Z této ukázky nelze odvodit, že algoritmus používá photon mapping nebo dvousměrné sledování cest.
  • Otevři plné rozlišení a prohlédni odlesky, průhlednost a difuzní přenos. Potom se vrať ke kontrolované dvojici, ve které se měnil jediný parametr.
Cycles CPU, 3840 × 2160, 64 spp, 10 odrazů, denoising.
Cycles CPU, 3840 × 2160, 64 spp, 10 odrazů, denoising.

42 / 42

Shrnutí a otázky

  • Jak spolu souvisejí geometrie, BRDF a integrátor? Které údaje ze zásahu potřebuje vyhodnocení materiálu?
  • Proč se radiance podél paprsku ve vakuu nemění, zatímco ozáření od bodového zdroje klesá s 1/r21/r^2?
  • Jak se liší any-hit od closest-hit? Proč Whittedův algoritmus nestačí na obecný difuzní přenos?
  • Literatura: Burley (2012), Kajiya (1986), Pharr, Jakob a Humphreys, PBRT 4. vydání (2023).

Literatura

PBRT, 4. vydání · Radiometrie · Blender: normal map a Non-Color.

Podklady k příkladům

Zdrojový Blender skript · Světelná scéna .blend · Displacement scéna .blend.

Blender 4.5: světelné cesty · PBRT: Monte Carlo a chyba odhadu · Blender: normal map a barevná interpretace.

Obsah

  1. Světlo a sledování paprsku
  2. Model světla a materiálu
  3. Azimut a elevace
  4. Od zdroje k pixelu
  5. Radiometrické veličiny
  6. Zdroj, světelný kužel a deska
  7. Vzdálenost a sklon povrchu
  8. Světelné zdroje
  9. Přímé a nepřímé osvětlení
  10. Difuzní odraz
  11. Zrcadlový odraz a mikrogeometrie
  12. Lesklý odraz a tvar odrazové funkce
  13. Phongův model: tři složky
  14. Phong a Blinn–Phong: směry a exponent
  15. Phongův model na celé polokouli
  16. BRDF: klíčový popis odrazu
  17. Definice BRDF
  18. Vzorkování a tabulka 81 × 81
  19. BRDF: směr světla a směr pozorování
  20. Ukázky BRDF na koulích
  21. Měření BRDF: gonioreflektometr
  22. Materiálové ukázky: BRDF a BTF
  23. Fyzikálně přípustná BRDF
  24. Lambertova BRDF a faktor 1/π
  25. BRDF v zobrazovací rovnici
  26. BRDF: jeden člen součtu a celý integrál
  27. Přehled modelů a měřená BRDF
  28. Viditelnost a stíny
  29. Paprsek a kamera
  30. Průsečík s koulí a trojúhelníkem
  31. Paprsek a trojúhelník
  32. Nejbližší zásah a stínový paprsek
  33. Odraz paprsku a výpočet směru
  34. Index lomu: rychlost a změna směru
  35. Fresnelův jev: směr a množství světla
  36. Odraz, lom a jejich Fresnelova kombinace
  37. Whitted: strom paprsků
  38. Whitted: skládání příspěvků a ukončení
  39. Monte Carlo a path tracing
  40. Akcelerační struktury
  41. Ukázky renderingu
  42. Shrnutí a otázky