This project represents my exploratory work in the field of offline rendering. Its purpose is to organize the entire workflow, deepen my understanding of path tracing, and, during the construction process, approach problems from a framework design perspective to reflect on the philosophical principles of software design. Overall, the content is still quite immature. There are two main directories: one is an attempt at building a framework, and the other is a simple implementation of path tracing.
To build the project with Windows system, you can use msvc compiler.
In the directroy ./DawnTracerMux/.
Enter the code in the terminal.
cmake -S . -B build/msvc(the directroy you like) -G ""(your compiler, often used default) -DCMAKE_BUILD_TYPE=Debug(or Release)
Then build the project, enter like that.
cmake --build build/msvc(the directroy you like) --config Debug # or Release
On Linux, you can use GCC.
#cmake -S . -B build/gcc(the directroy you like) -G ""(your compiler, often used default) -DCMAKE_BUILD_TYPE=Debug # or Release
Then build the project.
#cmake --build build/gcc(the directroy you like)
In directory ./DawnTracerMux/app/assets/scene.json, you can change the value about spp to generate different results, but all of them are .ppm images which you need a suitable viewer to display realistically on Windows.(you can download some plugin in vscode to show the picture);
The file also contains a PPT that presents some project details.
The default scene is called Cornellbox in this project and the result is just like the illustration which you can see on the bottom of this page.
