Skip to content

Pure C++ Pathtracer being implemented for study purposes. Use some open external librarys for object loading, image loading and vector operations.

Notifications You must be signed in to change notification settings

brayner1/Pathtracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PathTracer

Pathtracer implemented for studying and practicing Physically Based Rendering techniques and the C++ language. This project was also used as the practical part of my Computer Engineering course conclusion work, entitled "Study of Path Tracing and Coherent Ray Tracing Techniques".

The project architecture and algorithms (including some classes names, for now) are heavily inspired in the (great) book "Physically Based Rendering: From Theory to Implementation", from Matt Pharr, Wenzel Jakob, and Greg Humphreys. Despite this, the book is used only as a reference source, and all the code was written by me.

This project also uses some open-source third party libraries for linear algebra (Eigen), 3D object loading (Assimp), image loading (stb headers), and image denoising (OpenImageDenoise).

For now, there is a lack of support for more complex materials and microfacet models since my focus is on designing the system and achieving a good performance. But these will be introduced soon.

Sample Rendered Image:

Rendering of the Sponza scene, provided online by Marko Dabrovic. sponza_denoised

External Libs:

About

Pure C++ Pathtracer being implemented for study purposes. Use some open external librarys for object loading, image loading and vector operations.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published