# A Framework for Learning and Rapid Implementation of Real-Time Global Illumination Methods
## 2 Related Work
### Rapid Implementation of Real-Time Global Illumination Methods  
As presented in Section 2.1, the software applications that contain the implementation of global illumination methods are complex and contain several processing stages. For this reason, as [PERSON] and [PERSON] [14] observe, over time, research groups have used their own development frameworks and the use of code between two such frameworks has been deficient. Moreover, the transfer of technology from research to industry has been difficult. The development of a flexible software kernel for rapid and easy implementation of global illumination methods has been a topic of research interest in order to unify the various approaches in this field. Several frameworks have been described, but most are old and have been proposed in the context of offline global illumination methods, such as ray tracing. [PERSON] and [PERSON] [15] proposed such a kernel for the particular method of ray tracing and its variations. This kernel was later extended by [PERSON] et al. [16]. A framework that has allowed the implementation of several global illumination methods was developed by Cornell University [17]. Another flexible framework, which allowed the implementation and extension of a larger set of global illumination methods was proposed by [PERSON] and [PERSON] [14]. An interesting approach was provided by [PERSON] et al. [18], who proposed a theoretical system that provides control over the rendering of the scene in terms of global illumination. The approach is independent of the lighting method. Subsequently, [PERSON] et al. [19] described in the \"Advanced Global Illumination\" book several methods, in parallel with the software architecture required to implement them. Over time, several frameworks have been used for research in the field. However, these frameworks have not focused on the flexibility of use for different approaches, but on the ease of use and quality of results for certain classes of techniques and certain particular purposes. The suite of applications known as Radiance [20] is an example. Another system is known as Physically Based Rendering Toolkit [21], which offers similar capabilities. A rendering system that offers more flexibility and introduces a scripting language is Mitsuba 2 [22]. Several approaches to real-time application architectures have been proposed. [PERSON] and [PERSON] [23] presented a software architecture of real-time rendering techniques, but without the focus on global illumination methods. The book _Real-Time Rendering_ by [PERSON] et al. [24] presents the state of the art for real-time rendering methods, together with software details for the implementation of such approaches. However, particularly for global illumination, the techniques are mentioned from a theoretical point of view, without emphasis on the software component. Subsequently, several real-time global illumination methods have been proposed [2; 3]. Research in the field of development frameworks for these methods has been directed towards proprietary and commercial game engines. However, most of these engines contain a monolithic global illumination system that implements a fixed set of methods. Unreal Engine 5 [25] offers a monolithic illumination system, known as Lightmass [26], that offers implementations for offline methods that cache indirect illumination at a pre-processing step. It also contains another monolithic system, known as Lumen [27], that offers the implementation of real-time global illumination with the ray-tracing hardware. The users can implement their own methods insofar as they modify the code [28] which is currently open source with a subscription to the EpicGames community on GitHub. However, the code base of the engine is large and difficult to comprehend due to the lack of documentation. Therefore, the implementation of new rendering pipelines is difficult. CryEngine [29] provides real-time global illumination through voxel-based methods in a monolithic system.