A Framework for Learning and Rapid Implementation of Real-Time Global Illumination Methods
Abstract
:1. Introduction
2. Related Work
2.1. Real-Time Global Illumination Methods
- Management of geometric data and illumination properties in the scene;
- Light transport simulation;
- Result display, which may require post-processing effects and adaptation to display hardware requirements.
2.2. Learning Real-Time Global Illumination Methods
2.3. Rapid Implementation of Real-Time Global Illumination Methods
3. Proposed Framework
3.1. Framework Architecture
3.1.1. Engine Subsystem
3.1.2. Editor Subsystem
3.1.3. Render Subsystem
Scene Data Management
Rendering Pipeline
voidSpecializedRenderPipeline::Init () |
{ |
renderPasses.push_back (new SpecializedRenderPass1 ()); |
renderPasses.push_back (new SpecializedRenderPass1 ()); |
renderPasses.push_back (new SpecializedRenderPass1 ()); |
} |
Sets Iteration
voidSpecializedRenderPipeline::Init () |
{ |
renderPasses.push_back ( |
new RenderPassContainer () |
->setRenderIterator (new PointLightsIterator ()) |
->insertRenderPass (new SpecializedRenderPass1 ()) |
->insertRenderPass (new SpecializedRenderPass2 ()) |
); |
} |
Data Generation
3.2. Technical Details
4. Demonstrative Methods of Real-Time Global Illumination
- Diffuse indirect illumination;
- Glossy reflections;
- Subsurface scattering and translucency;
- Direct illumination of area light sources.
- Techniques based on RSMs;
- Techniques based on discrete ordinate methods (DOMs);
- Techniques based on voxel volume;
- Techniques based on screen space information.
5. Use Cases for the Proposed Framework
5.1. Using the Framework for Learning
5.2. Using the Framework for Rapid Implementation of Real-Time Global Illumination Methods
5.3. Other Use Cases
6. Results
6.1. Comparison with Other Frameworks
6.2. Evaluation for Educational Purposes
- The generation of a set of samples used to extract the VPLs on the screen;
- Accommodation with the framework architecture, in particular with the use of rendering passes and the management of rendering settings;
- Mathematical theory for the computation of diffuse indirect illumination;
- The ray cast process that uses the information on the screen.
7. Conclusions
Supplementary Materials
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Whitted, T. Origins of Global Illumination. IEEE Comput. Graph. Appl. 2020, 40, 20–27. [Google Scholar] [CrossRef]
- Ritschel, T.; Dachsbacher, C.; Grosch, T.; Kautz, J. The State of the Art in Interactive Global Illumination. Comput. Graph. Forum 2012, 31, 160–188. [Google Scholar] [CrossRef]
- Lambru, C.; Morar, A.; Moldoveanu, F.; Asavei, V.; Moldoveanu, A. Comparative Analysis of Real-Time Global Illumination Techniques in Current Game Engines. IEEE Access 2021, 9, 125158–125183. [Google Scholar] [CrossRef]
- Ritschel, T.; Grosch, T.; Seidel, H.P. Approximating Dynamic Global Illumination in Image Space. In Proceedings of the 2009 Symposium on Interactive 3D Graphics and Games, I3D’09, Boston, MA, USA, 27 February–1 March 2009; Association for Computing Machinery: New York, NY, USA, 2009; pp. 75–82. [Google Scholar] [CrossRef]
- Sousa, T.; Kasyan, N.; Schulz, N. Secrets of CryENGINE 3 graphics technology. In Proceedings of the ACM SIGGRAPH 2011 Courses, Advances in Real-Time Rendering in 3D Graphics and Games, Vancouver, BC, Canada, 7–1 August 2011. [Google Scholar]
- Dachsbacher, C.; Stamminger, M. Reflective Shadow Maps. In Proceedings of the 2005 Symposium on Interactive 3D Graphics and Games, I3D’05, Washington, DC, USA, 3–6 April 2005; Association for Computing Machinery: New York, NY, USA, 2005; pp. 203–231. [Google Scholar] [CrossRef]
- Kaplanyan, A.; Dachsbacher, C. Cascaded Light Propagation Volumes for Real-Time Indirect Illumination. In Proceedings of the 2010 ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, I3D ’10, Washington, DC, USA, 19–21 February 2010; Association for Computing Machinery: New York, NY, USA, 2010; pp. 99–107. [Google Scholar] [CrossRef]
- Thiedemann, S.; Henrich, N.; Grosch, T.; Müller, S. Voxel-Based Global Illumination. In Proceedings of the Symposium on Interactive 3D Graphics and Games, I3D ’11, San Francisco, CA, USA, 18–20 February 2011; Association for Computing Machinery: New York, NY, USA, 2011; pp. 103–110. [Google Scholar] [CrossRef] [Green Version]
- Balreira, D.G.; Walter, M.; Fellner, D.W. What We Are Teaching in Introduction to Computer Graphics; EG 2017—Education Papers; Bourdin, J.J., Shesh, A., Eds.; The Eurographics Association: Geneve, Switzerland, 2017. [Google Scholar] [CrossRef]
- Suselo, T.; Wünsche, B.C.; Luxton-Reilly, A. Technologies and Tools to Support Teaching and Learning Computer Graphics: A Literature Review. In Proceedings of the Twenty-First Australasian Computing Education Conference, ACE ’19, Sydney, NSW, Australia, 29–31 January 2019; Association for Computing Machinery: New York, NY, USA, 2019; pp. 96–105. [Google Scholar] [CrossRef]
- Unity Technologies. Unity. Available online: https://unity.com/ (accessed on 16 May 2022).
- Smith, G.; Sung, K. Teaching Computer Graphics Based on a Commercial Product; Eurographics 2019—Education Papers; Tarini, M., Galin, E., Eds.; The Eurographics Association: Geneve, Switzerland, 2019. [Google Scholar] [CrossRef]
- Vitsas, N.; Gkaravelis, A.; Vasilakis, A.A.; Vardis, K.; Papaioannou, G. Rayground: An Online Educational Tool for Ray Tracing; Eurographics 2020—Education Papers; Romero, M., Sousa Santos, B., Eds.; The Eurographics Association: Geneve, Switzerland, 2020. [Google Scholar] [CrossRef]
- Slusallek, P.; Seidel, H.P. Towards an Open Rendering Kernel for Image Synthesis; Rendering Techniques ’96; Pueyo, X., Schröder, P., Eds.; Springer: Vienna, Austria, 1996; pp. 51–60. [Google Scholar]
- Kirk, D.; Arvo, J. The Ray Tracing Kernel. In Proceedings of the Ausgraph, Melbourne, VIC, Australia, 4–8 July 1988; pp. 75–82. [Google Scholar]
- Shirley, P.; Sung, K.; Brown, W. A ray tracing framework for global illumination systems. In Proceedings of the Graphics Interface, Calgary, AB, Canada, 3–7 June 1991; Volume 91, pp. 117–128. [Google Scholar]
- Trumbore, B.; Lytle, W.; Greenberg, D.P. A Testbed for Image Synthesis; Eurographics Association: Geneve, Switzerland, 1991; Volume 91, pp. 467–480. [Google Scholar]
- Debattista, K.; Sundstedt, V.; Santos, L.P.; Chalmers, A. Selective Component-Based Rendering. In Proceedings of the 3rd International Conference on Computer Graphics and Interactive Techniques in Australasia and South East Asia, GRAPHITE ’05, Dunedin, New Zealand, 29 November–2 December 2005; Association for Computing Machinery: New York, NY, USA, 2005; pp. 13–22. [Google Scholar] [CrossRef] [Green Version]
- Dutre, P.; Bala, K.; Bekaert, P.; Shirley, P. Advanced Global Illumination; AK Peters Ltd.: Natick, MA, USA, 2006. [Google Scholar]
- Ward, G.J. The RADIANCE Lighting Simulation and Rendering System. In Proceedings of the 21st Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’94, Orlando, FL, USA, 24–29 July 1994; Association for Computing Machinery: New York, NY, USA, 1994; pp. 459–472. [Google Scholar] [CrossRef] [Green Version]
- Pharr, M.; Humphreys, G. Physically Based Rendering: From Theory to Implementation; Morgan Kaufmann Publishers Inc.: San Francisco, CA, USA, 2004. [Google Scholar]
- Nimier-David, M.; Vicini, D.; Zeltner, T.; Jakob, W. Mitsuba 2: A Retargetable Forward and Inverse Renderer. ACM Trans. Graph. 2019, 38, 1–17. [Google Scholar] [CrossRef] [Green Version]
- Dollner, J.; Hinrichs, K. A generic rendering system. IEEE Trans. Vis. Comput. Graph. 2002, 8, 99–118. [Google Scholar] [CrossRef]
- Akenine-Moller, T.; Haines, E.; Hoffman, N. Real-Time Rendering, 3rd ed.; A. K. Peters, Ltd.: Natick, MA, USA, 2008. [Google Scholar]
- Epic Games. Unreal Engine | The Most Powerful Real-Time 3D Creation Tool. Available online: https://www.unrealengine.com/ (accessed on 16 May 2022).
- Epic Games. Lightmass Basics. Available online: https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/Lightmass/Basics/ (accessed on 16 May 2022).
- Epic Games. Lumen Global Illumination and Reflections. Available online: https://docs.unrealengine.com/5.0/en-US/lumen-global-illumination-and-reflections-in-unreal-engine/ (accessed on 16 May 2022).
- Epic Games. Github—EpicGames/UnrealEngine: Unreal Engine Source Code. Available online: https://github.com/EpicGames/UnrealEngine (accessed on 16 May 2022).
- Crytek. CRYENGINE | The Complete Solution for Next Generation Game Development by Crytek. Available online: https://www.cryengine.com/ (accessed on 16 May 2022).
- Crytek. GitHub—CRYTEK/CRYENGINE: CRYENGINE Is a Powerful Real-Time Game Development Platform Created by Crytek. Available online: https://github.com/CRYTEK/CRYENGINE (accessed on 16 May 2022).
- Unity Technologies. Unity—Manual: Using the Built-in Render Pipeline. Available online: https://docs.unity3d.com/Manual/built-in-render-pipeline.html (accessed on 16 May 2022).
- Unity Technologies. Unity—Manual: Scriptable Render Pipeline Fundamentals. Available online: https://docs.unity3d.com/Manual/ScriptableRenderPipeline.html (accessed on 16 May 2022).
- Unity Technologies. Universal Render Pipeline Overview | Universal RP | 11.0.0. Available online: https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@11.0/manual/index.html (accessed on 16 May 2022).
- Unity Technologies. High Definition Render Pipeline Overview | High Definition RP | 14.0.2. Available online: https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@14.0/manual/index.html (accessed on 16 May 2022).
- Unity Technologies. Render Graph | High Definition RP | 10.2.2. Available online: https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@10.2/manual/render-graph.html (accessed on 16 May 2022).
- Godot Engine. Free and Open Source 2D and 3D Game Engine. Available online: https://godotengine.org/ (accessed on 16 May 2022).
- Open 3D Engine. O3DE. Available online: https://www.o3de.org/ (accessed on 16 May 2022).
- Blender Foundation. blender.org—Home of the Blender Project—Free and Open 3D Creation Software. Available online: https://www.blender.org/ (accessed on 16 May 2022).
- NVIDIA. NVIDIA Iray Graphics Rendering. Available online: https://www.nvidia.com/en-us/design-visualization/iray/ (accessed on 17 May 2022).
- NVIDIA. NVIDIA OptiX™ Ray Tracing Engine. Available online: https://developer.nvidia.com/rtx/ray-tracing/optix (accessed on 16 May 2022).
- NVIDIA. NVIDIA RTX Global Illumination (RTXGI). Available online: https://developer.nvidia.com/rtx/ray-tracing/rtxgi (accessed on 16 May 2022).
- NVIDIA. NVIDIA VXGI 2.0.1. Available online: https://developer.nvidia.com/vxgi (accessed on 16 May 2022).
- NVIDIA. Falcor. Available online: https://developer.nvidia.com/falcor (accessed on 16 May 2022).
- GPUOpen by AMD. Cauldron Framework. Available online: https://gpuopen.com/cauldron-framework/ (accessed on 16 May 2022).
- Ocornut. GitHub–ocornut/imgui: Dear ImGui: Bloat-Free Graphical User Interface for C++ with Minimal Dependencies. Available online: https://github.com/ocornut/imgui (accessed on 17 May 2022).
- Lambru, C.; Morar, A.; Moldoveanu, F.; Asavei, V.; Ivascu, S. Hybrid Global Illumination: A Novel Approach Combining Screen and Light Space Information. Univ. Politeh. Buchar. Sci. Bull. Ser. Electr. Eng. Comput. Sci. 2021, 83, 3–20. [Google Scholar]
- McGuire, M.; Mara, M. Efficient GPU Screen-Space Ray Tracing. J. Comput. Graph. Tech. (JCGT) 2014, 3, 73–85. [Google Scholar]
- Crassin, C.; Neyret, F.; Sainz, M.; Green, S.; Eisemann, E. Interactive Indirect Illumination Using Voxel Cone Tracing. Comput. Graph. Forum 2011, 30, 1921–1930. [Google Scholar] [CrossRef] [Green Version]
- Saito, T.; Takahashi, T. Comprehensible Rendering of 3-D Shapes. SIGGRAPH Comput. Graph. 1990, 24, 197–206. [Google Scholar] [CrossRef]
Real-Time Global Illumination | Generic | Diffuse Indirect Illumination | Glossy Reflections | Subsurface Scattering & Translucency | Direct Illumination for Area Lights |
---|---|---|---|---|---|
RSM-based methods | – | intensity, number of samples, sampling radius, screen interpolation parameters | intensity, number of iterations, sample thickness | intensity, number of iterations, sample thickness | N/A |
DOM-based methods | LPV resolution, number of propagation iterations, use of geometry occlusion | intensity | intensity, number of iterations | intensity, number of iterations | number of samples per triangle |
Voxel-based methods | voxel volume resolution, use of continuous voxelization, voxel volume mipmap levels | intensity, cone distance in voxel volume space | intensity, cone radius/height ratio, cone distance in voxel volume space | intensity, cone radius/height ratio, cone distance in voxel volume space | – |
Screen space methods | – | intensity, number of samples, sampling radius, screen interpolation parameters | intensity, number of iterations, sample thickness | intensity, number of iterations, sample thickness | – |
Framework/Game Engine | Contains Demonstrative Real-Time Global Illumination Technique Implementations | Allows the Implementation of New Methods |
---|---|---|
Unreal Engine 5 [25] | Monolithic, Lightmass [26] and Lumen [27] | Only by ground-up implementation |
CryEngine [29] | Monolithic, Voxel-Based Global Illumination | Only by ground-up implementation |
Unity BRP [31] | Monolithic, requires offline pre-processing | No |
Unity SRP [32] | No | Yes, multi-pass architecture |
Unity URP [33] | Monolithic, requires offline pre-processing | No |
Unity HDRP [34] | Ray tracing methods | Yes, multi-pass architecture |
Godot [36] | Monolithic, signed distance field global illumination | Only by ground-up implementation |
Open 3D Engine [37] | Monolithic, dynamic diffuse global illumination | Only by ground-up implementation |
NVIDIA OptiX [40] | Only methods based on ray tracing | Only methods based on ray tracing |
NVIDIA RTXGI [41] | Only methods based on ray tracing | Only methods based on ray tracing |
NVIDIA VXGI [42] | Voxel-Based Global Illumination | Only by ground-up implementation |
NVIDIA Falcor [43] | Several illumination effect implementations | Yes, multi-pass architecture |
Radeon Cauldron [44] | Several illumination effect implementations | Yes, multi-pass architecture |
Participant | Implementation Time | Implementation Correctness | Number of Times They Asked for Help |
---|---|---|---|
Participant 1 | 45 min | 100% | 0 |
Participant 2 | 45 min | 100% | 0 |
Participant 3 | 75 min | 91% | 1 |
Participant 4 | 23 min | 100% | 0 |
Participant 5 | 150 min | 100% | 0 |
Participant 6 | 33 min | 100% | 0 |
Participant 7 | 70 min | 91% | 0 |
Participant 8 | 75 min | 91% | 1 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Lambru, C.; Moldoveanu, F.; Morar, A.; Asavei, V.; Moldoveanu, A. A Framework for Learning and Rapid Implementation of Real-Time Global Illumination Methods. Appl. Sci. 2022, 12, 5654. https://doi.org/10.3390/app12115654
Lambru C, Moldoveanu F, Morar A, Asavei V, Moldoveanu A. A Framework for Learning and Rapid Implementation of Real-Time Global Illumination Methods. Applied Sciences. 2022; 12(11):5654. https://doi.org/10.3390/app12115654
Chicago/Turabian StyleLambru, Cristian, Florica Moldoveanu, Anca Morar, Victor Asavei, and Alin Moldoveanu. 2022. "A Framework for Learning and Rapid Implementation of Real-Time Global Illumination Methods" Applied Sciences 12, no. 11: 5654. https://doi.org/10.3390/app12115654
APA StyleLambru, C., Moldoveanu, F., Morar, A., Asavei, V., & Moldoveanu, A. (2022). A Framework for Learning and Rapid Implementation of Real-Time Global Illumination Methods. Applied Sciences, 12(11), 5654. https://doi.org/10.3390/app12115654