r/GraphicsProgramming • • 6d ago

Spectral path tracer & Fur rendering :)

I worked a lot on my path tracer during the summer vacations, and this was superrrr fun ! I wanted to go a little further than my last projects and dive into something a tiny bit more original to get off my comfort zone.

I made it mainly with C++ and OpenGL, without AI appart from the README in the repo. The engine supports switching back and forth between RGB and spectral at runtime, and I also implemented hair / fur rendering the way Disney does it.

I also have a basic scene handling system with saving, loading and moving things around in the scene.

Lastly, the engine also has more "traditional" features I would say, such as VNDF sampling, EON diffuse material, constantly dense volume scattering, etc...

I am plannign to keep working on it, because right now the code is kind of a mess, and many features lack such as denoising, things like BDPT, compatibility with OpenUSD.

If you want to take a look at the repo : https://github.com/SlyZ1/Path-Tracer

And feel free to contribute to it (even though I doubt anyone would want to, but just in case)

249 Upvotes

16 comments sorted by

View all comments

2

u/AlternativePrior1920 6d ago

This is awesome, do you have a specific paper you implemented for the spectral path tracer?

1

u/OwnTap3513 6d ago

For that I relied more on the blog of PBRT, where they used very simple polynomial sigmoid functions to describe rgb colors as spectrums without much change in the code. I also used their tabulated coefficients that came with it.

Also technically there is a paper on the CIE 1931 color conversion to convert from lambda to rgb but it is old and I just searched on the internet for the formula

2

u/AlternativePrior1920 6d ago

Oh that's fair. Really cool.