An Efficient Load-balancing Image Sampler for Path Tracing
Efektivní vzorkovač obrazu s podporou rozložení zátěže pro sledování paprsku
bachelor thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/176108Identifiers
Study Information System: 241516
Collections
- Kvalifikační práce [11327]
Author
Advisor
Referee
Nindel, Thomas Klaus
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Programming and Software Systems
Department
Department of Software and Computer Science Education
Date of defense
12. 9. 2022
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
sledování paprsku|vzorkování obrazu|paralení programování|počítačová grafika|renderováníKeywords (English)
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