An Efficient Load-balancing Image Sampler for Path Tracing
Efektivní vzorkovač obrazu s podporou rozložení zátěže pro sledování paprsku
bakalářská práce (OBHÁJENO)

Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/176108Identifikátory
SIS: 241516
Kolekce
- Kvalifikační práce [11326]
Autor
Vedoucí práce
Oponent práce
Nindel, Thomas Klaus
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Programování a softwarové systémy
Katedra / ústav / klinika
Katedra softwaru a výuky informatiky
Datum obhajoby
12. 9. 2022
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
sledování paprsku|vzorkování obrazu|paralení programování|počítačová grafika|renderováníKlíčová slova (anglicky)
path tracing|image sampling|parallel programming|computer graphics|renderingV této práci vylepšíme výzkumný renderer zvaný ART. Zaměřujeme se především na vzorkovač obrázků. Zanalyzujeme nedostatky stochastického vzorkovače, který byl přítomen před napsáním této práce. Těmi jsou obrovská spotřeba paměti, nepřítomnost vizualizace v reálném čase a ome- zený komunikační kanál mezi rendererem a aplikací, která jej má ovládat. Následně navrhneme dva vzorkovače, které by mohly sloužit jako náhrada. Vybereme ten, který se zdá být více vhodný. Následně provedeme sérii testů, které slouží k doladění parametrů nového vzorkovače a také jako srovnání mezi novým a starým vzorkovačem. Použitím dat z testů ukážeme, že jsme snížili nároky na paměť, při zachování rychlosti na většinou stejné úrovni jako dříve. Tím jsme také umožnili práci s vyšším počtem jader než dříve. 1
In this thesis, we go through the process of improving a research renderer called ART. We focus primarily on the image sampler. We analyse the shortcomings of the stochastic sampler that was present before this thesis was written. Those being the huge memory consumption, lack of real-time visualization, and a limited communication channel between the renderer and the application that is supposed to control it. We then design two samplers that could serve as a replacement. We choose the one which seems to be better suited for the task. We then run a series of tests which serve to finetune parameters of the new sampler and also serve as a comparison between the new and the old sampler. By using the data from the tests we show that we have reduced the memory foot-print while maintaining the speed at mostly the same level as before while enabling working with greater number of cores. 1