pgr2
Loading...
Searching...
No Matches
PRG2 - Inferred Lighting

Základní verze využívá víceprůchodový algoritmus podobný odloženému vykreslování. Hlavním rozdílem oproti odloženému vykreslování je fakt, že výpočet osvětlení je prováděn v nižším rozlišení.

První průchod naplní G-buffer, pomocí kterého se následně druhým průchodem vypočítá osvětlení a uloží se do L-bufferu. Poslední průchod, který pracuje v plném rozlišení, znovu vykresluje geometrii scény a pomocí speciálně interpolovaných dat z G a L-bufferů dochází k výpočtu výsledné barvy fragmentů.

Navíc lze zajistit i vykreslování poloprůhledných objektů pomocí techniky prokládání, při ztrátě poloviny rozlišení.

Oproti původnímu popisu z článku je zde přidáno několik úprav se snahou o odstranění některých neduhů:

  • Difůzní a spekulární složky osvětlení jsou uloženy zvlášť do samostatné textury
  • Pokročilejší systém hledání hladkých částí geometrie
  • Object-normal ID v G-bufferu je vypočítáno jako hash ID objektu a ID komponenty
  • DSF využívající informaci o rozdílu normály a vzdálenosti jednotlivých vzorků

Navíc je zde implementováno dlaždicové vykreslování osvětlení, při kterém dochází k filtrování seznamu světel a následném počítání osvětlení pouze u světel, které mohou osvětlit fragmenty dané dlažice. Tohoto je docíleno pomocí výpočtu rozsahu hloubek fragmentů z prvního průchodu vykreslování a analytického výpočtu rozsahu hloubek jednotlivých světel.

Ovládání

Přepínání kamer

  • F1 - Kamera 1
  • F2 - Kamera 2
  • F3 - Kamera 3
  • F4 - Kamera 4
  • F5 - Kamera 5

Ostatní

  • R - znovunačtění shaderů
  • Numpad + - zrychlení herního času
  • Numpad - - zpomalení herního času
  • Spacebar - zastavení herního času

Externí závislosti

Interní závislosti

Sestavení

mkdir build && cd build
cmake ..
make