Original title:
EduRay: Didaktický ray-tracer v Pythonu
Translated title:
EduRay: Didactic Ray Tracer in Python
Authors:
Šik, Jan ; Vlnas, Michal (referee) ; Herout, Adam (advisor) Document type: Bachelor's theses
Year:
2026
Language:
cze Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[cze][eng]
Sledování paprsku je jednou ze základních metod syntézy obrazu v počítačové grafice. Tato bakalářská práce popisuje návrh a implementaci systému určeného pro výuku principů sledování paprsku v jazyce Python. Cílem práce bylo vytvořit modulární knihovnu a navazující sadu Jupyter notebooků, které vysvětlují jednotlivé části metody, umožňují experimentovat s jejich implementací a sledovat jejich vliv na výsledný obraz. Oproti lineárně budovaným výukovým materiálům umožňuje navržené řešení v jednotlivých noteboocích vyčlenit konkrétní části algoritmu, zatímco knihovna zajišťuje zbytek vykreslovacího řetězce. Výukové materiály postupují od jednodušších variant ke složitějším a věnují se například konstrukci kamery, generování paprsků, výpočtu průsečíků, lokálnímu osvětlení, rekurzivnímu sledování paprsku a procedurálním úpravám materiálů. Součástí řešení je také vizualizační nástroj pro zobrazení prvků používaných při vykreslování, například kamery, paprsku, objektů a průsečíků. Výsledkem práce je didaktický nástroj využitelný při výuce i samostatném studiu syntézy obrazu metodou sledování paprsku. Vytvořená knihovna je veřejně dostupná prostřednictvím služby PyPI a může sloužit jako základ pro experimentování i pro rozšiřování systému o pokročilejší techniky.
Ray tracing is one of the fundamental methods of image synthesis in computer graphics. This bachelor's thesis focuses on the design and implementation of a system intended for teaching the principles of ray tracing in Python. The goal of the thesis was to create a modular library and an accompanying set of Jupyter notebooks that make it possible to clearly explain individual parts of the method, experiment with their implementation, and observe their influence on the resulting image. Unlike linearly structured teaching materials, the proposed solution makes it possible to isolate selected parts of the algorithm in individual notebooks, while the library provides the remaining parts of the rendering pipeline. The teaching materials progress from simpler variants to more complex ones and cover topics such as camera construction, ray generation, intersection computation, local lighting, recursive ray tracing, and procedural material modification. The solution also includes a visualization tool for displaying elements used during rendering, such as cameras, rays, objects, and intersections. The result of this work is a didactic tool that can be used in teaching as well as for self-study of image synthesis based on ray tracing. The created library is publicly available through PyPI and can serve as a basis for further experimentation and for extending the system with more advanced techniques.
Keywords:
computer graphics; educational library; lighting models; Python; ray tracing; recursive ray tracing; rendering; didaktická knihovna; osvětlovací modely; počítačová grafika; Python; rekurzivní sledování paprsku; renderování; sledování paprsku
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/259275