Filtrování globálního osvětlení pro interaktivní aplikace


Jan Dundr Vedoucí práce: Jiří Bittner Diplomová práce 2018
Vykreslování 3D scén se zároveň rychle vypočítatelným a přesným globálním osvětlením je ještě pořád komplikovaný problém: existuje mnoho metod, které jsou schopny výsledek v určitých situacích odhadnout velmi přesně a v jiných zase selhat. Sledování cest (path tracing) je díky své přesnosti a nevychýlenosti často používaná metoda, stále je ale příliš pomalá pro výpočet v reálném čase kvůli velkému množství komplikovaých interakcí paprsků se scénou: i nejnověší GPU mají problém udržet si rychlost výpočtu v reálném čase pro víc než jen několik snímků za sekundu. To znamená, že obrazový výstup je všude z velké míry zatížen šumem a místy ani nemusí obsahovat žádnou informaci. V této práci je popsána a otestována jedna z novějších metod: vzorky difúzní složky světla jsou s pomocí reprojekce nashromážděny z minulých snímků a následně je na ně aplikován bilaterální filtr využívající normálu, hloubku a rozptyl v daném místě k zastavení rozmazání cenných detaiů např. kolem hran a okrajů stínů. Tímto způsobem dostaneme časově stabilní výstup bez šumu (který nám dokonverguje hned po několika snímcích). Tudo metodu jsme implementovali pomocí OpenGL jako součást existujícího rychlého vykreslovacího systému na CPU postaveného na sledování cest. Metodu jsme upravili tak, aby si poradila i se vstupem, kde v každém pixelu ještě nemusí být přítomen vzorek z vystřeleného paprsku (kvůli udržení interaktivní snímkové frekvence). Nakonec jsme zhodnotili kvalitu a rychlost výstupu tohoto algoritmu.