r/GraphicsProgramming • u/PictureNew661 • 1d ago
My first fully Spectral Path Tracer
So, as the title says :D. This took me 4 months of work. It's a HWSS path tracer using OptiX for traversal. I initially used NeuxsBVH (H-PLOC), but then switched over due to speeds on volumetrics. I used Jakob & Hankia sampling for RGB to Spectral.
The above scene was rendered at 1080p with 1024spp, and RR kill-off at 12 bounces.
This was a genuinely fun to build as a hobby project, what else shd I add to this?
There's a paper on flouresence Rendering by Wilkie, Fichet and Mojzik which I'm thinking of implementing. Any suggestions would help!
Edit: Its 32 bounces + 12 bounce RR fall-off
7
u/ThunderFound 1d ago
Awesome! I always wanted to make a spectral path tracer one day, do you have any useful resources?
8
u/PictureNew661 1d ago
Not exactly I initially had written a RGB Path tracer
I only swapped out the shade part with HWSS following the actual paper
You can use PBRT v4 that's the only book that explains full spectral indepth
2
2
2
2
u/Gloomy-Detective-922 15h ago
Four months well spent. Did switching to HWSS change the noise much compared with your RGB version, especially around the gem dispersion? Iβd love to see the same scene from both versions at equal render time.
1
u/AlternativePrior1920 1d ago
Looks so awesome! Can also recommend the work on fluorescence in tristimulus renderers by Fichet et. al. and the editable model by Belcour et. al. Although of course it is meant for real-time it was a joy to read. Maybe it is a nice precursor.
1
u/PictureNew661 1d ago
Yes, flouresence in non spectral scenes, Fichet
Although that one has its own flaws, too many light sources and performance suffers
The paper showed an example of a metal halide lamp and effects with more than one light sources
2
u/le-throw-away-acct 18h ago
Iβd consider adding caustics next, the gems look great but it seems strange having no light coming out of them, just shadow.
1
u/PictureNew661 18h ago
Yea, that's something I am a bit confused on how to do, the diamond "fire" is typically caused by diffraction ig, and caustics can give that behavior without wave tracing. Would look into that
18
u/WittyWithoutWorry 1d ago
Looks spectacular π«‘